Nový objev ve funkcionálním programování

Jester

Re:Nový objev ve funkcionálním programování
« Odpověď #15 kdy: 02. 04. 2018, 14:13:33 »
Jo a když dojíš ovce, ...
Když dojím ovci, tak dám kosti na okraj talíře.
To je rada pro balíka, aby ty kosti nežral? :)


Jester

Re:Nový objev ve funkcionálním programování
« Odpověď #16 kdy: 02. 04. 2018, 14:16:26 »
A muzete nekdo vysvetlit, co to je ta monada. K cemu je to dobre a uvest
dva tri  priklady?
Je to dobré k modifikaci dat v jazycích, ve kterých data modifikovat nelze. Příklady jsou třeba seznam a optional ("nulovatelné reference"). Vysvětlit to jednoduše nejde, je to moc abstraktní. Někteří monády považují za akademickou blbost.

Jester

Re:Nový objev ve funkcionálním programování
« Odpověď #17 kdy: 02. 04. 2018, 14:18:02 »
A muzete nekdo vysvetlit, co to je ta monada. K cemu je to dobre a uvest
dva tri  priklady?
To se tady jen tak nedozvíš, protože ten, kdo pochopil monády, ztrácí schopnost je vysvětlit.
A jak to teda člověk pochopí? Někdo, kdo to už zná, mu to nějak vysvětlit musí.

Jester

Re:Nový objev ve funkcionálním programování
« Odpověď #18 kdy: 02. 04. 2018, 14:19:00 »
Co je to monáda, k čemu je dobré a proč bych se to měl učit? Napište mi 5 důvodů. Děkuji.
Neumíš googlit?

balki

Re:Nový objev ve funkcionálním programování
« Odpověď #19 kdy: 02. 04. 2018, 14:36:33 »
Co je to monáda, k čemu je dobré a proč bych se to měl učit? Napište mi 5 důvodů. Děkuji.

Monada umoznuje v "pure functional" jazykoch odseparovat side-effekty od hlavneho kodu. Vo vysledku mas cistejsi kod, ktory sa lahsie udrziava a je jednoduchsie mu rozumiet.

Co je to monada v progamovani, ti z brucha nepoviem, je to pozicany pojem z teorie kategorii v matematike. Monada je monoid v kategorii endofunktorov. Na pochopenie toho treba rozumiet abstraktnej algebre. A tu som v skole presiel z odretymi usami a z hlavy sa mi parilo.

Ak chces vysvetlenie, co je to v programovani, tu je clanok od tvorcu haskellu:
http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf

Na co sa to ucit:
1. je to dalsi sposob modularizacie
2. je to alternativny pristup k aspektovo-orientovanemu programovaniu
3. casom sa to v nejakej forme ocitne v mainstream programovacich jazykoch
4. umoznuje to iny pohlad na programovanie a prevetra ti to mozgove zavity
5. cim viac ludi to bude ovladat, tym menej pubertalnych, emocionalne nevyzretych jesterov sa bude na internete odbavovat.



Kit

Re:Nový objev ve funkcionálním programování
« Odpověď #20 kdy: 02. 04. 2018, 14:37:54 »
A muzete nekdo vysvetlit, co to je ta monada. K cemu je to dobre a uvest
dva tri  priklady?
To se tady jen tak nedozvíš, protože ten, kdo pochopil monády, ztrácí schopnost je vysvětlit.
A jak to teda člověk pochopí? Někdo, kdo to už zná, mu to nějak vysvětlit musí.

Mně bylo vysvětleno, že monáda je jen nějaký box na data či funkce a s tím jsem si musel vystačit. Další možné srovnání je s unixovou rourou nebo s prázdným excelovským chlívkem.

A teď to schytám od těch, kterým se to před chvílí nechtělo vysvětlovat.

Jester

Re:Nový objev ve funkcionálním programování
« Odpověď #21 kdy: 02. 04. 2018, 14:41:10 »
Co je to monáda, k čemu je dobré a proč bych se to měl učit? Napište mi 5 důvodů. Děkuji.
Monada je monoid v kategorii endofunktorov.
Další génius, co to umí skvěle vysvětlit :D

Jester

Re:Nový objev ve funkcionálním programování
« Odpověď #22 kdy: 02. 04. 2018, 14:43:27 »
A muzete nekdo vysvetlit, co to je ta monada. K cemu je to dobre a uvest
dva tri  priklady?
To se tady jen tak nedozvíš, protože ten, kdo pochopil monády, ztrácí schopnost je vysvětlit.
A jak to teda člověk pochopí? Někdo, kdo to už zná, mu to nějak vysvětlit musí.
Mně bylo vysvětleno, že monáda je jen nějaký box na data či funkce a s tím jsem si musel vystačit. Další možné srovnání je s unixovou rourou nebo s prázdným excelovským chlívkem.

A teď to schytám od těch, kterým se to před chvílí nechtělo vysvětlovat.
Otázka bokem: má PHP monády? Ptám se vážně, PHP neznám, ale web je plný článků o "Monads in C++", "Monads in Java", "Monads in MIPS Assembly" apod. PHP si v této souvislosti nevybavuju.

Kit

Re:Nový objev ve funkcionálním programování
« Odpověď #23 kdy: 02. 04. 2018, 14:46:36 »
Otázka bokem: má PHP monády? Ptám se vážně, PHP neznám, ale web je plný článků o "Monads in C++", "Monads in Java", "Monads in MIPS Assembly" apod. PHP si v této souvislosti nevybavuju.

Ano, PHP má monády. Jen se v něm tento pojem nepoužívá.

Kit

Re:Nový objev ve funkcionálním programování
« Odpověď #24 kdy: 02. 04. 2018, 14:59:58 »
Otázka bokem: má PHP monády? Ptám se vážně, PHP neznám, ale web je plný článků o "Monads in C++", "Monads in Java", "Monads in MIPS Assembly" apod. PHP si v této souvislosti nevybavuju.

https://blog.ircmaxell.com/2013/07/taking-monads-to-oop-php.html

balki

Re:Nový objev ve funkcionálním programování
« Odpověď #25 kdy: 02. 04. 2018, 16:50:05 »
Co je to monáda, k čemu je dobré a proč bych se to měl učit? Napište mi 5 důvodů. Děkuji.
Monada je monoid v kategorii endofunktorov.
Další génius, co to umí skvěle vysvětlit :D

Zmente dilera, v prispevku toho bolo napisaneho viac. Nejak vam to "baranie mlieko" nerobi dobre.

Jester

Re:Nový objev ve funkcionálním programování
« Odpověď #26 kdy: 02. 04. 2018, 20:48:15 »
A muzete nekdo vysvetlit, co to je ta monada. K cemu je to dobre a uvest
dva tri  priklady?
To se tady jen tak nedozvíš, protože ten, kdo pochopil monády, ztrácí schopnost je vysvětlit.
A jak to teda člověk pochopí? Někdo, kdo to už zná, mu to nějak vysvětlit musí.
Mně bylo vysvětleno, že monáda je jen nějaký box na data
Některé se tak tváří, ale třeba pro kontinuace to obecně neplatí.

Kit

Re:Nový objev ve funkcionálním programování
« Odpověď #27 kdy: 02. 04. 2018, 21:04:28 »
Mně bylo vysvětleno, že monáda je jen nějaký box na data
Některé se tak tváří, ale třeba pro kontinuace to obecně neplatí.

To je právě ono. Znalci monád záměrně mlží, aby do jejich náboženství vstupovali jen vyvolení.

Jester

Re:Nový objev ve funkcionálním programování
« Odpověď #28 kdy: 02. 04. 2018, 21:33:30 »
Mně bylo vysvětleno, že monáda je jen nějaký box na data
Některé se tak tváří, ale třeba pro kontinuace to obecně neplatí.
To je právě ono. Znalci monád záměrně mlží, aby do jejich náboženství vstupovali jen vyvolení.
To podle mě nedělají schválně, taková polovičatá vysvětlení pramení z neznalosti (nebo poloznalosti), někdo si prostě myslí, že už monády pochopil, takže je začne vysvětlovat, ale ve skutečnosti v tom ještě dost plave. Odtud se berou ta různá burrita a já nevím, co všechno. Je to prostě moc abstraktní, IMHO by bylo nejlepší jít na to od té matematické definice a ukázat na konkrétních příkladech, jak ta definice "náhodou" stoprocentně sedí na obrovské množství běžně užívaných datových struktur a konceptů. Monády se přece dají lehce vysvětlit pomocí diagramů (pár šipek) bez nějaké speciální terminologie a té matiky se není třeba bát, to nejsou čísla, ale právě vztahy mezi - v tomto případě - typy a funkcemi. Čísla, jichž se ve skutečnosti mnozí bojí, nechme kupčíkům.

BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
Re:Nový objev ve funkcionálním programování
« Odpověď #29 kdy: 03. 04. 2018, 03:53:41 »
A muzete nekdo vysvetlit, co to je ta monada. K cemu je to dobre a uvest
dva tri  priklady?
Tady http://funkcionalne.cz/2017/05/monoid/ je pěkně vysvětlené takové to "Monada je monoid v kategorii endofunktorov." - na konkrétním, jednoduchým a praktickým příkladu.