Těžké OOP problémy

Re:Těžké OOP problémy
« Odpověď #210 kdy: 11. 11. 2019, 15:06:20 »
"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 »
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 :)

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 »
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 »
"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í.

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 »
Co je to vlastnost? Já mám za to, že predikát. Souhlas?

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


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #215 kdy: 11. 11. 2019, 15:55:22 »
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 »
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
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #217 kdy: 11. 11. 2019, 15:57:49 »
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
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #218 kdy: 11. 11. 2019, 15:59:11 »
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
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #219 kdy: 11. 11. 2019, 16:00:36 »
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 »
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 »
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 »
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
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #223 kdy: 11. 11. 2019, 16:10:41 »
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
    • Zobrazit profil
    • E-mail
Re:Těžké OOP problémy
« Odpověď #224 kdy: 11. 11. 2019, 16:14:39 »
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…š :)