Těžké OOP problémy

Re:Těžké OOP problémy
« Odpověď #255 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 :)


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #256 kdy: 11. 11. 2019, 23:33:19 »
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 :)
Ten ani neví, co to množina je :)

Re:Těžké OOP problémy
« Odpověď #257 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 :))

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #258 kdy: 11. 11. 2019, 23:38:27 »
Ten ani neví, co to množina je :)
To ale není žádná ostuda, protože to beztak neví nikdo :))
To je poměrně odvážné tvrzení.

xyz

  • ***
  • 243
    • Zobrazit profil
Re:Těžké OOP problémy
« Odpověď #259 kdy: 11. 11. 2019, 23:39:54 »
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!

No a jaky je prinos do diskuze? Ze cim vic vlastnosti z funkcionalnich jazyku, tim vic funkcionalni jazyk?

Mene (prispevku) je nekdy vice :D



Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #260 kdy: 11. 11. 2019, 23:43:21 »
AFAIK (alespon v "normalnich" logikach, u jinych nevim) lze kazdy predikat definovat pomoci mnoziny a naopak kazdou mnozinu pomoci predikatu.
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.

(Uvědom si, ať jsme konkrétní, že obecně ne každá bezesporná teorie (každá jde vyjádřit predikátem), má model (tedy "množinu")).

Re:Těžké OOP problémy
« Odpověď #261 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 :)

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #262 kdy: 12. 11. 2019, 00:05:51 »
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 :)
Pak jo, akorát to je cesta do pekel, jak už tu někdo zmiňoval množinu predikátů, to pak vede k nespočetným hnusům. Hezky o tom psal Cohen (ten, co dokázal nezávislost AC a CH na ZF).

Re:Těžké OOP problémy
« Odpověď #263 kdy: 12. 11. 2019, 06:18:02 »
Ten ani neví, co to množina je :)
To ale není žádná ostuda, protože to beztak neví nikdo :))
Jede Pepíček s babičkou vlakem a najednou volá: "Hele, babi, támhle je množina kraviček"... "Ale Pepíčku, tam žádné kravičky nejsou"... "Prázdná množina ..."

Ink

  • *****
  • 668
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #264 kdy: 12. 11. 2019, 07:13:51 »
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 :)

Proto podle mě má smysl hejtovat FP jako koncept (tedy pure FP), stejně jako OOP jako koncept a neřešit jednotlivé jazyky nebo když už, jenom v rámci demonstrace obecného problému. Něco jako "FP má problém navázat čisté funkce na reálný svět s jeho změnami v čase".

Re:Těžké OOP problémy
« Odpověď #265 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.

:))

Re:Těžké OOP problémy
« Odpověď #266 kdy: 12. 11. 2019, 09:40:46 »
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.
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.


Tak to potom nemá smysl se moc bavit.

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 :)

S množinami jsi začal ty, načež jsi začal tvrdit, že predikát je množina predikátů.

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 :)
Ten ani neví, co to množina je :)

Profesor Rosický byl jiného názoru.

Re:Těžké OOP problémy
« Odpověď #267 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.

Re:Těžké OOP problémy
« Odpověď #268 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.

Re:Těžké OOP problémy
« Odpověď #269 kdy: 12. 11. 2019, 09:56:19 »
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í (...)

Čekám tu omluvu.

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.

Přesto nevím o žádné, která by splňovala to tvé hloupé tvrzení.