Těžké OOP problémy

Re:Těžké OOP problémy
« Odpověď #210 kdy: 11. 11. 2019, 15:06:20 »
Citace od: ondrama kdy 11. 11. 2019, 13:28:16
"Byt funkcionalnim jazykem" neni mnozina, ale predikat.
Dobrá připomínka, pojďme si ji teda rozebrat.

Zaprvé jsem nenapsal množina [čehokoli], ale  "množina vlastností". Co je to vlastnost? Já mám za to, že predikát. Souhlas? Podle mě teda vlastně nastoluješ otázku, jestli 1. dává vůbec smysl mluvit o množině predikátů 2. jestli je množina predikátů predikát. Souhlas?

Pokud v obojím souhlasíš, tak bych teď navrhoval takovou menší instrumentální odbočku, kde dám slovo zase tobě, ať z toho máme hezký dialog:

1. Mějme (aktuálně) konečné (jakkoli třebas potenciálně nekonečné) univerzum individuí. Řekněme třebas programovacích jazyků v daném čase a světě. Individua značme tradičně I.

2. Mějme predikát P nad množinou I, který říká, že dané individuum má nějakou vlastnost. Třeba že programovací jazyk "je funkcionální".

3. Mějme množinu "funkcionálních jazyků" M.

Co bys řekl o vztahu mezi P a M? Mohly bysme v nějakém smyslu říct, že P a M jsou izomorfní? Rozeber a zdůvodni.


Re:Těžké OOP problémy
« Odpověď #211 kdy: 11. 11. 2019, 15:10:40 »
Citace od: Idris kdy 11. 11. 2019, 12:42:11
Hmm, IMHO jde jen o referenční průhlednost (což zahrnuje "pure" funkce a datové struktury).
To máš určitě pravdu, referenční transparentnost implikuje ledasco :)

Citace od: Idris kdy 11. 11. 2019, 12:42:11
Typy a funkce vyšších řádů s tím nijak přímo nesouvisí, to má i Fortran.
To bych řekl, že je podmínka nutná, ne postačující. Bez ní si funkcionální jazyk moc neumím představit.

Re:Těžké OOP problémy
« Odpověď #212 kdy: 11. 11. 2019, 15:25:57 »
Citace od: Mirek Prýmek kdy 11. 11. 2019, 15:06:20
Mohly bysme [...]
OMG! Sorry. Ne, fakt nemám problém s identitou, to jsem asi jenom už myslel na to "bysme", když jsem to psal :)

Re:Těžké OOP problémy
« Odpověď #213 kdy: 11. 11. 2019, 15:31:02 »
Citace od: Mirek Prýmek kdy 11. 11. 2019, 15:06:20
Citace od: ondrama kdy 11. 11. 2019, 13:28:16
"Byt funkcionalnim jazykem" neni mnozina, ale predikat.
Dobrá připomínka, pojďme si ji teda rozebrat.

Zaprvé jsem nenapsal množina [čehokoli], ale  "množina vlastností".


To je irelevantní.

Citace od: Mirek Prýmek kdy 11. 11. 2019, 15:06:20
Co je to vlastnost? Já mám za to, že predikát. Souhlas?

Ne, to teda není.

Re:Těžké OOP problémy
« Odpověď #214 kdy: 11. 11. 2019, 15:31:36 »
Citace od: Cikáda kdy 11. 11. 2019, 15:31:02
Citace od: Mirek Prýmek kdy 11. 11. 2019, 15:06:20
Co je to vlastnost? Já mám za to, že predikát. Souhlas?

Ne, to teda není.
Proč si to myslíš?


Idris

  • *****
  • 2 286
Re:Těžké OOP problémy
« Odpověď #215 kdy: 11. 11. 2019, 15:55:22 »
Citace od: Mirek Prýmek kdy 11. 11. 2019, 15:10:40
Citace od: Idris kdy 11. 11. 2019, 12:42:11
Hmm, IMHO jde jen o referenční průhlednost (což zahrnuje "pure" funkce a datové struktury).
To máš určitě pravdu, referenční transparentnost implikuje ledasco :)
Pak je ten seznam, na který odkazuješ, k prdu, když obsahuje mezi sebou se implikující položky. Co je teda kromě ref. průhlednosti nedílnou součástí FP? Vážně, fakt mě nic nenapadá.

Re:Těžké OOP problémy
« Odpověď #216 kdy: 11. 11. 2019, 15:56:51 »
Citace od: Idris kdy 11. 11. 2019, 15:55:22
Pak je ten seznam, na který odkazuješ, k prdu, když obsahuje mezi sebou se implikující položky. Co je teda kromě ref. průhlednosti nedílnou součástí FP? Vážně, fakt mě nic nenapadá.
Spíš naopak: pokud by byla RP podmínkou, pak nebude "funkcionální jazyk" skoro nic. Zůstane ti jenom Haskell a pár těch akademických pokusných jazyků...

Idris

  • *****
  • 2 286
Re:Těžké OOP problémy
« Odpověď #217 kdy: 11. 11. 2019, 15:57:49 »
Citace od: Mirek Prýmek kdy 11. 11. 2019, 15:10:40
To bych řekl, že je podmínka nutná, ne postačující. Bez ní si funkcionální jazyk moc neumím představit.
FP bez typů (přesněji: statického typování) není problém. Byl by víceméně k h...u, ale technicky no problem.

Idris

  • *****
  • 2 286
Re:Těžké OOP problémy
« Odpověď #218 kdy: 11. 11. 2019, 15:59:11 »
Citace od: Mirek Prýmek kdy 11. 11. 2019, 15:31:36
Citace od: Cikáda kdy 11. 11. 2019, 15:31:02
Citace od: Mirek Prýmek kdy 11. 11. 2019, 15:06:20
Co je to vlastnost? Já mám za to, že predikát. Souhlas?

Ne, to teda není.
Proč si to myslíš?
Protože nemyslí, jen píše bláboly. Formální sémantika mu nic neříká a nikdy nebude.

Idris

  • *****
  • 2 286
Re:Těžké OOP problémy
« Odpověď #219 kdy: 11. 11. 2019, 16:00:36 »
Citace od: Mirek Prýmek kdy 11. 11. 2019, 15:56:51
Citace od: Idris kdy 11. 11. 2019, 15:55:22
Pak je ten seznam, na který odkazuješ, k prdu, když obsahuje mezi sebou se implikující položky. Co je teda kromě ref. průhlednosti nedílnou součástí FP? Vážně, fakt mě nic nenapadá.
Spíš naopak: pokud by byla RP podmínkou, pak nebude "funkcionální jazyk" skoro nic. Zůstane ti jenom Haskell a pár těch akademických pokusných jazyků...
To není problém. Však se taky většinou říká, že jazyk "má funkcionální konstrukce", těch čistých je minimum. Přesně podle definice.

Re:Těžké OOP problémy
« Odpověď #220 kdy: 11. 11. 2019, 16:00:46 »
Citace od: Mirek Prýmek kdy 11. 11. 2019, 15:31:36
Citace od: Cikáda kdy 11. 11. 2019, 15:31:02
Citace od: Mirek Prýmek kdy 11. 11. 2019, 15:06:20
Co je to vlastnost? Já mám za to, že predikát. Souhlas?

Ne, to teda není.
Proč si to myslíš?

Já si nic myslet nemusím, máme definice. Třeba ti to Idris vysvětlí.

Edit - Tak ne, nevysvětlí.

Re:Těžké OOP problémy
« Odpověď #221 kdy: 11. 11. 2019, 16:01:32 »
Citace od: Cikáda kdy 11. 11. 2019, 16:00:46
Já si nic myslet nemusím, máme definice. Třeba ti to Idris vysvětlí.
Ok. Definice pojmu "predikát" a pojmu "vlastnost" jsou teda podle tebe jaké?

Re:Těžké OOP problémy
« Odpověď #222 kdy: 11. 11. 2019, 16:07:45 »
Citace od: Idris kdy 11. 11. 2019, 16:00:36
To není problém. Však se taky většinou říká, že jazyk "má funkcionální konstrukce", těch čistých je minimum. Přesně podle definice.
No právě že těch čistých je minimum. Běžně se říká, že Erlang, Elixir, Clojure, ... jsou funkcionální jazyky a přitom ani jeden by takovou přísnou definici nesplňoval... Proto 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... Erlang a Elixir třeba celkem všechny, až na side effecty, takže tím padá i RT.

Idris

  • *****
  • 2 286
Re:Těžké OOP problémy
« Odpověď #223 kdy: 11. 11. 2019, 16:10:41 »
Citace od: Mirek Prýmek kdy 11. 11. 2019, 16:07:45
Citace od: Idris kdy 11. 11. 2019, 16:00:36
To není problém. Však se taky většinou říká, že jazyk "má funkcionální konstrukce", těch čistých je minimum. Přesně podle definice.
No právě že těch čistých je minimum. Běžně se říká, že Erlang, Elixir, Clojure, ... jsou funkcionální jazyky a přitom ani jeden by takovou přísnou definici nesplňoval... Proto 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... Erlang a Elixir třeba celkem všechny, až na side effecty, takže tím padá i RT.
Čím víc pruhů... :D

Idris

  • *****
  • 2 286
Re:Těžké OOP problémy
« Odpověď #224 kdy: 11. 11. 2019, 16:14:39 »
Citace od: Mirek Prýmek kdy 11. 11. 2019, 16:01:32
Citace od: Cikáda kdy 11. 11. 2019, 16:00:46
Já si nic myslet nemusím, máme definice. Třeba ti to Idris vysvětlí.
Ok. Definice pojmu "predikát" a pojmu "vlastnost" jsou teda podle tebe jaké?
Nejdřív mu objasni rozdíl mezi syntaxí a sémantikou formálních jazyků, potažmo mezi dokazatelností a splnitelností (v teorii modelů), až to pochopí (včetně korektnosti a úplnosti), bude moct s tebou diskutovat ;) Časem se třeba dopracuje až k modální logice, její emulaci v LPŘ a třeba i vyšším řádům a rozdílu mezi obecnou a standardní sémantikou. Druhá možnost je, že se na něj vys...š :)