Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Mirek Prýmek

Stran: 1 ... 58 59 [60] 61 62 ... 618
886
/dev/null / Re:Těžké OOP problémy
« kdy: 12. 11. 2019, 10:07:57 »
S množinami jsi začal ty, načež jsi začal tvrdit, že predikát je množina predikátů.
Přesně cituj nebo se omluv.

(...), protože "být funkcionálním jazykem" je množina několika různých vlastností (...)

A ty tam někde vidíš tvrzení "predikát je množina predikátů"? Fascinující!

Přesto nevím o žádné, která by splňovala to tvé hloupé tvrzení.
Vzhledem k tomu, že si "moje tvrzení" cucáš z prstu, by tohle mohla být pravda.

887
/dev/null / Re:Těžké OOP problémy
« kdy: 12. 11. 2019, 09:46:35 »
Profesor Rosický byl jiného názoru.
Mno, profesor Rosický, zřejmě narozdíl od tebe, moc dobře ví, že existují různé definice toho pojmu.

888
/dev/null / Re:Těžké OOP problémy
« kdy: 12. 11. 2019, 09:42:17 »
S množinami jsi začal ty, načež jsi začal tvrdit, že predikát je množina predikátů.
Přesně cituj nebo se omluv.

889
/dev/null / Re:Těžké OOP problémy
« kdy: 12. 11. 2019, 09:10:07 »
Myslel jsem si, že tu budeme propírat OOP. Místo toho se tu hádají stoupenci FP o slovíčka. Nechcete si to vyříkat ve vlastním vlákně?
Kite, abys nebyl naštvanej, že tady plevelíme vlákno o OOP... My tady totiž právě OOP probíráme!

Množina predikátů, to je totiž třída. Ty predikáty říkají, jestli daný objekt odpovídá na danou zprávu. Nebo jinak: průnik predikátům příslušných množin individuí je množina objektů dané třídy.

Dědění je přidávání predikátů do množiny. Vícenásobná dědičnost je sjednocení množin predikátů.

Takže třeba:

Kód: [Vybrat]
Animal = {RespondsToMove}
Cat = {RespondsToMove, RespondsToMeow}
Dog = {RespondsToMove, RespondsToBark}

a model např.:

Kód: [Vybrat]
Animal_P(olgoi_khorkhoi) = true
RespondsToMeow(olgoi_khorkhoi) = false
RespondsToBark(olgoi_khorkhoi) = false

Animal_P(micka) = true
RespondsToMove(micka) = true
Cat_P(micka) = true
RespondsToMeow(micka) = true
Dog_P(micka) = false
RespondsToBark(micka) = false

Animal_P(tyrl) = true
RespondsToMove(tyrl) = true
Cat_P(tyrl) = false
RespondsToMeow(tyrl) = false
Dog_P(tyrl) = true
RespondsToBark(tyrl) = true

Animal_S = {olgoi_khorkhoi, micka, tyrl}
Cat_S = {micka}
Dog_S = {tyrl}

Animal je třída
Animal_P je predikát odpovídající třídě
Animal_S je množina individuí dané třídy

Akorát teda tenhle model (o kterém se tady celou dobu bavíme) se nejmíň ve dvou věcech odlišuje od běžných reálných implementací. Ale to Cikáda považoval za tak zřejmé, že ani neměl potřebu to nějak rozebírat.

:))

890
/dev/null / Re:Těžké OOP problémy
« kdy: 11. 11. 2019, 23:54:44 »
Tak to není pravda ani vzdáleně. Jednak přeskakuješ mezi "formalismes" a "sémantikou", což o kousek výše kritizuješ. Korektně se dá nanejvýš říct, že je mezi predikáty a množinami nějaký vztah, o definici ale rozhodně jít nemůže, protože ten vztah ani není 1:1. Tohle je hodně velký přešlap.
Souhlas. "Definovat" bylo fakt idiotský slovo. Chtěl jsem prostě říct, že na predikát se taky můžeš dívat jako na množinu individuí pro který platí, to je celý, žádnou vědu za tím nehledej. Souvislost s modelem tam (v tomhle smyslu, jak jsem to myslel) nevidím, ale už jsem dost utahanej, radši už se budu poroučet než nad tím dál s tebou dumat :)

891
/dev/null / Re:Těžké OOP problémy
« kdy: 11. 11. 2019, 23:35:20 »
Ten ani neví, co to množina je :)
To ale není žádná ostuda, protože to beztak neví nikdo :))

892
/dev/null / Re:Těžké OOP problémy
« kdy: 11. 11. 2019, 23:29:53 »
Proč tak složitě? Stačí říct, že každá funkce je instance součinového závislostního typu Πx:A.B(x), kde B nezávisí na x. A je to, nepotřebuješ množiny ani kartézský součin ;)
Mnoziny tam potreboval Cikada :)

893
/dev/null / Re:Těžké OOP problémy
« kdy: 11. 11. 2019, 23:24:36 »
Jsem tu :-) S tim predikatem jsem to napsal spis jako popichnuti, protoze se vyjadrujes radoby akademickym jazykem a ve vysledku ten odstavec neni moc srozumitelny.
Super! Vsechna cest, ze ses ozval a byl chlapsky uprimnej, klobouk dolu!

Budu taky. Tu vyhradu neberu, prvorade proto, ze se imho snazis aplikovat pojmy z nejakeho formalismu (predikatova logika?) na prirozeny jazyk. Preskakujes ze sveta semantiky ("vlastnost"), ve kterem jsem se pohyboval, do sveta formalismu ("predikat"). To dost dobre samo o sobe nedava smysl, natoz aplikovano na prirozeny jazyk.

---

Jestli to bylo nesrozumitelny, tak se omlouvam. Chtel jsem proste rict to, co jsem napsal pozdeji:
myslím, že jsou to spíš "shades of grey" - čím víc těch "vlastností funkcionálních jazyků" splňuje, tím víc je to funkcionální jazyk...
cili (tak jako vetsina vyrazu prirozeneho jazyka) i "funkcionalni jazyk" je proste fuzzy pojem. Pro nekoho je funkcionalni jenom Haskell a par jazyku, o kterych nikdy nikdo normalni neslysel, pro nekoho je funkcionalni jazyk i Javascript :)

Podle me se ale daji alespon identifikovat nejake vlastnosti, ktere dohromady tvori jakousi pseudoskalu - cim vic z nich jazyk ma, tim vic je funkcionalni. To je cely, zadna veda.

---

Jinak mimo hru: AFAIK (alespon v "normalnich" logikach, u jinych nevim) lze kazdy predikat definovat pomoci mnoziny a naopak kazdou mnozinu pomoci predikatu. Protoze predikat proste rozdeluje univerzum individui na dve disjunktni podmnoziny: pro jednu plati, pro druhou neplati. Takze predikat a mnozina jsou vicemene dva ruzne pohledy na tutez vec, kazdy z jine strany. ...takze ani mnozina predikatu neni zadny velky problem. Muzeme tomu dat semantiku treba takovou, jakou jsem tomu dal ja (fuzzy vlastnost), nebo bysme to mohli treba i v predikatove logice chapat jako (neformalne) "zretezeni pomoci AND" neboli jako prunik tech mnozin, ktere vymezuji ty predikaty. Proc ne? Fantazii se meze nekladou, kazdy si muze co chce nadefinovat jak chce, zejmena semantiku :) (a proto IMHO neni moc moudry temahle pojmama nekoho mlatit po hlave :) )

---

P.S. Ses chlap, respekt!

894
/dev/null / Re:Těžké OOP problémy
« kdy: 11. 11. 2019, 22:57:39 »
Tak pro zajimavost. [...]
Ja bych to moc nekomplikoval. Jeste by se nedejmatkorpirodo mohl objevit nekdo, kdo by treba mohl ocitovat

Nechť A, B jsou množiny. Funkcí f z A do B rozumíme podmnožinu A × B takovou, že pro každé a ∈ A existuje právě jedno f(a) ∈ B, že (a, f(a)) patří do této podmnožiny.

...a to bysme se uz vubec nikam nedostali!

:)

895
/dev/null / Re:Těžké OOP problémy
« kdy: 11. 11. 2019, 22:24:35 »
Už jsme ji opravovali dva. Dokud nebudeš chápat rozdíl mezi `{a}` a `a`, tak to nemá smysl. Hlavně že si tu s Idrisem honíte trika.
Nevim, jaky `{a}` a `a` mas namysli.

Ja jsem rekl

"být funkcionálním jazykem" je množina několika různých vlastností

Procez ondrama mi vycetl:
"Byt funkcionalnim jazykem" neni mnozina, ale predikat.

Ty mi tady (pro me) nesrozumitelne povidas o tom, ze mnozina neni funkce a ze {a} neni a. To nejak souvisi s tim, co napsal ondrama? Nebo to je zas nejaka jina chyba?

S vama je to tezky, chlapi. Na me musite pomalu a srozumitelne. Poradne, pomalicku a poporade mi vysvetlit, jak je to spravne a proc, ja jsem jednoduchej kluk z vesnice.

896
/dev/null / Re:Těžké OOP problémy
« kdy: 11. 11. 2019, 22:05:36 »
Ne, všechno by bylo jednodušší, kdyby sis pamatoval, co píšeš, a přestal trollit.
Cili doopravdy nemas zajem mou chybu opravit. Jenom trolis.

897
/dev/null / Re:Těžké OOP problémy
« kdy: 11. 11. 2019, 21:51:30 »
Typický vztah ale je, že predikát vyjadřuje, zdali něco (ne)má/(ne)splňuje nějakou vlastnost. Nepředpokládám, že bys to nevěděl.
To nemuzu vedet, dokud nedefinujes, co je to vlastnost.

Odkdy je množina funkce?
Odkdy je možné střílet káňata a mít přitom v Berouně maštal?

aneb:

Vsechno by bylo o mnoho jednodussi, kdybys citoval konkretni moji vetu a napsal, co je v ni spatne, proc a jak by to bylo spravne.

898
/dev/null / Re:Těžké OOP problémy
« kdy: 11. 11. 2019, 21:12:18 »
Bereme-li to tak, tak ok.
Jinak to ani brat nejde.

899
/dev/null / Re:Těžké OOP problémy
« kdy: 11. 11. 2019, 21:09:09 »
Ne, myslím to, že predikát je většinou brán jako funkce, která vrací True/False.
To je jiste jedna z moznych definic. Muzeme s ni dal pracovat, nejsem nejak zasadne proti. A jeste bysme teda potrebovali definici pojmu "vlastnost", abys mi mohl ukazat, kde jsem se zmylil.

Plus jeste jsi rikal ze mi nekde neco typove nesedi, to bys byl taky moc hodny, kdybys to opravil.

900
/dev/null / Re:Těžké OOP problémy
« kdy: 11. 11. 2019, 20:22:27 »
Mozna lepsi nez vycet vlastnosti ktere potrebuje jazyk mit aby ho slo povazovat za funkcionalni by byl vycet vlastnosti ktere mit nesmi.
Jj, přesně tak. Ty vlastnosti, o kterých mluvím, jsou negativní - jsou to omezení.

Co jinyho nesmim pridat?
Třeba mutabilní struktury, sdílená data, ...

Nebo co musim odebrat z clojure, aby se stal ciste funkcionalnim?
Side effecty. Mutabilní data, která se dají sdílet, má Clojure myslím taky, ne? (Nevím, celému lispovskému světu se záměrně dost vyhýbám, nesedí mi to)

Stran: 1 ... 58 59 [60] 61 62 ... 618