Funkcionální programování a mainstream

Kit

Re:Funkcionální programování a mainstream
« Odpověď #60 kdy: 25. 07. 2017, 22:08:33 »
Křesťanství je v manželství velice důležité, proto je taky u nás 50% rozvodů.

To si nevybereš, zbývajících 50 % manželství končí smrtí.


Ivan Nový

Re:Funkcionální programování a mainstream
« Odpověď #61 kdy: 25. 07. 2017, 22:28:23 »
Křesťanství je v manželství velice důležité, proto je taky u nás 50% rozvodů.

To si nevybereš, zbývajících 50 % manželství končí smrtí.


Po šedesáti letech společné cesty.

BoneFlute

  • *****
  • 2 003
    • Zobrazit profil
Re:Funkcionální programování a mainstream
« Odpověď #62 kdy: 25. 07. 2017, 22:56:17 »
Křesťanství je v manželství velice důležité, proto je taky u nás 50% rozvodů.

Hele, já sice s tebou (v tomhle a pokud jsem tě dobře pochopil) naprosto souhlasím, jenže byť je to velice důležité a užitečné téma, a člověk toho může bejt plnej... tak s Funkcionálním programováním to fakt nesouvisí. Nedělej prosímtě křesťanství medvědí službu, a necpi to sem.

Kit

Re:Funkcionální programování a mainstream
« Odpověď #63 kdy: 25. 07. 2017, 23:06:54 »
[Schvalne jsem ted sahl do policky pro tri nahodne vybrane knizky o funkcionalnim programovani On Lisp, PAIP a Compiling with Continuations, abych se podival, kolikrat se tam zminuje teorie kategorii. Cislo ti radsi ani nebudu rikat, mohl by se ti zhroutit cely tvuj svet.

Teorie kategorií je jako bible pro funkcionální programátory. Málokdo jí rozumí, ale všichni ji prezentují jako dar z nebes.

haha

Re:Funkcionální programování a mainstream
« Odpověď #64 kdy: 25. 07. 2017, 23:46:20 »
Citace
Že nechápeš souvislosti neznamená, že neexistují, jen že takové knihy nejsou pro tupé lopaty.

Kde nejsou argumenty, nastupuji urazky. Myslel jsem, ze frajer jako ty ma na vic.

Schvalne jsem ted sahl do policky pro tri nahodne vybrane knizky o funkcionalnim programovani On Lisp, PAIP a Compiling with Continuations, abych se podival, kolikrat se tam zminuje teorie kategorii. Cislo ti radsi ani nebudu rikat, mohl by se ti zhroutit cely tvuj svet.
(někdy uetoyo)
:D ... +1
FP je pro blbce ... třeba jako já ... konečně to po mě někdo přečte a funguje to. Vůbec nevím, kde ten pan zboj chodí na ty rozumy, že FP je něco pro kouzelníky. (BTW Milewskiho čtu, ale pro praktické věci doporučím číst fsharpforfunandprofit)


UF

Re:Funkcionální programování a mainstream
« Odpověď #65 kdy: 26. 07. 2017, 13:41:49 »
Křesťanství je v manželství velice důležité, proto je taky u nás 50% rozvodů.
prosim?

Ivan Nový

Re:Funkcionální programování a mainstream
« Odpověď #66 kdy: 26. 07. 2017, 22:09:45 »
Křesťanství je v manželství velice důležité, proto je taky u nás 50% rozvodů.
prosim?

Je velmi důležité, proč myslíte, že dřívější generace vydržely spolu až do smrti. Protože měli pro společný život i mravní základ daný křesťanstvím, tedy Biblí, což dnes mnoha lidem chybí a jdou jen za vlastní slastí, jsou de facto demoralizovaní. A jsou demoralizovaní cíleně, neomarxistickou propagandou, že cílem každého lidského života je vlastní štěstí a vlastním štěstím lze omluvit cokoliv. Podobně argumentovali komunisti za normalizace, když lámali charaktery lidí.

Kit

Re:Funkcionální programování a mainstream
« Odpověď #67 kdy: 26. 07. 2017, 23:38:28 »
Je velmi důležité, proč myslíte, že dřívější generace vydržely spolu až do smrti. Protože měli pro společný život i mravní základ daný křesťanstvím, tedy Biblí, což dnes mnoha lidem chybí a jdou jen za vlastní slastí, jsou de facto demoralizovaní. A jsou demoralizovaní cíleně, neomarxistickou propagandou, že cílem každého lidského života je vlastní štěstí a vlastním štěstím lze omluvit cokoliv. Podobně argumentovali komunisti za normalizace, když lámali charaktery lidí.

Snažíš se vlámat do otevřených dveří. Většina z nás s tebou souhlasí, jen o tom nechtějí tady polemizovat. A pak je tu pár jedinců, kteří s tebou nesouhlasí a budou tě neustále trolit.

Funkcionální programování jsem si zatím vyzkoušel v Lispu a Haskellu. V PHP je FP sice omezené, ale na většinu úloh mi to stačí. Co třeba tabulkové kalkulátory? Považujete vyplňování kolonek za FP?

hop

Re:Funkcionální programování a mainstream
« Odpověď #68 kdy: 27. 07. 2017, 00:16:39 »
dobrá kniha o FP bez akedemického bullshitu je Higher Order Perl

http://hop.perl.plover.com/book/pdf/HigherOrderPerl.pdf

Re:Funkcionální programování a mainstream
« Odpověď #69 kdy: 27. 07. 2017, 10:40:53 »
Snažíš se vlámat do otevřených dveří. Většina z nás s tebou souhlasí, jen o tom nechtějí tady polemizovat.
Máš nějaký konkrétní data která by to potvrzovala, nebo jsi jen samozvaný mluvčí "většiny"? Předpokládám že (minimálně v případě biblického fanclubu) platí B, takže si to prosím nech od cesty.

Funkcionální programování jsem si zatím vyzkoušel v Lispu a Haskellu. V PHP je FP sice omezené, ale na většinu úloh mi to stačí. Co třeba tabulkové kalkulátory? Považujete vyplňování kolonek za FP?
To je dobrá připomínka - mnoho programátorů nemá tušení o tom co to FP vůbec je. Je to vidět v případě Javy, kde někteří začali místo metod deklarovat statické fieldy typu Function (s lambdou), všechny if/else přepsali na Optional.ofNull.elseGet a myslí si že programují funkcionálně.

Zjednodušená verze pro "dělníky" (akademici snad omluví): používání funkcí není funkcionální programování; to začíná až tehdy, když se funkce předávají jako argumenty a vrací jako návratové hodnoty.

Tabulkový kalkulátor tedy rozhodně FP není, ani náhodou (dokonce to IMHO ani není možné, ale nejsem expert).

Kit

Re:Funkcionální programování a mainstream
« Odpověď #70 kdy: 27. 07. 2017, 12:36:10 »
Zjednodušená verze pro "dělníky" (akademici snad omluví): používání funkcí není funkcionální programování; to začíná až tehdy, když se funkce předávají jako argumenty a vrací jako návratové hodnoty.

Tohle zjednodušení "pro dělníky" vypadá velmi srozmitelně.

Zkusím to parafrázovat na OOP: Používání objektů není objektovým programováním; to začíná až tehdy, když se objekty předávají jako argumenty a vrací jako návratové hodnoty.

v

Re:Funkcionální programování a mainstream
« Odpověď #71 kdy: 27. 07. 2017, 13:00:07 »
Funkcionální programování jsem si zatím vyzkoušel v Lispu a Haskellu. V PHP je FP sice omezené, ale na většinu úloh mi to stačí. Co třeba tabulkové kalkulátory? Považujete vyplňování kolonek za FP?
To je dobrá připomínka - mnoho programátorů nemá tušení o tom co to FP vůbec je. Je to vidět v případě Javy, kde někteří začali místo metod deklarovat statické fieldy typu Function (s lambdou), všechny if/else přepsali na Optional.ofNull.elseGet a myslí si že programují funkcionálně.

Zjednodušená verze pro "dělníky" (akademici snad omluví): používání funkcí není funkcionální programování; to začíná až tehdy, když se funkce předávají jako argumenty a vrací jako návratové hodnoty.

Tabulkový kalkulátor tedy rozhodně FP není, ani náhodou (dokonce to IMHO ani není možné, ale nejsem expert).
(matematici prominou)
IMHO je funkcionální programování pojmenované podle matematické funkce, což je zařízení, které transformuje jednu hodnotu na hodnotu novou, přičemž stejná vstupní hodnota je vždy transformována na stejnou výstupní, překladač by třeba transformoval řetězec na seznam instrukcí (compile :: String -> [Z80Instruction]) a tímto pohledem by se spreadsheet mohl jevit jako nástroj pro funkcionální programování

JS

Re:Funkcionální programování a mainstream
« Odpověď #72 kdy: 27. 07. 2017, 13:43:01 »
Funkcionální programování jsem si zatím vyzkoušel v Lispu a Haskellu. V PHP je FP sice omezené, ale na většinu úloh mi to stačí. Co třeba tabulkové kalkulátory? Považujete vyplňování kolonek za FP?
To je dobrá připomínka - mnoho programátorů nemá tušení o tom co to FP vůbec je. Je to vidět v případě Javy, kde někteří začali místo metod deklarovat statické fieldy typu Function (s lambdou), všechny if/else přepsali na Optional.ofNull.elseGet a myslí si že programují funkcionálně.

Zjednodušená verze pro "dělníky" (akademici snad omluví): používání funkcí není funkcionální programování; to začíná až tehdy, když se funkce předávají jako argumenty a vrací jako návratové hodnoty.

Tabulkový kalkulátor tedy rozhodně FP není, ani náhodou (dokonce to IMHO ani není možné, ale nejsem expert).
(matematici prominou)
IMHO je funkcionální programování pojmenované podle matematické funkce, což je zařízení, které transformuje jednu hodnotu na hodnotu novou, přičemž stejná vstupní hodnota je vždy transformována na stejnou výstupní, překladač by třeba transformoval řetězec na seznam instrukcí (compile :: String -> [Z80Instruction]) a tímto pohledem by se spreadsheet mohl jevit jako nástroj pro funkcionální programování

Taky bych rekl, ze hlavni vlastnosti FP je pouzivani funkci v matematickem smyslu, nikoli pouzivani funkci vyssiho radu; to druhe ma ostatne i OOP (delegaty a dalsi vzory) a klasicke strukturovane programovani (odkaz na funkci).

hop

Re:Funkcionální programování a mainstream
« Odpověď #73 kdy: 27. 07. 2017, 14:06:42 »
Taky bych rekl, ze hlavni vlastnosti FP je pouzivani funkci v matematickem smyslu, nikoli pouzivani funkci vyssiho radu; to druhe ma ostatne i OOP (delegaty a dalsi vzory) a klasicke strukturovane programovani (odkaz na funkci).

dost důležité jsou lexikální uzávěry a lambda funkce. V čistě imperativních jazycích jako c jen obtížně implementujete líné vyhodnocování, nekonečné posloupnost apod.

Re:Funkcionální programování a mainstream
« Odpověď #74 kdy: 27. 07. 2017, 14:14:16 »
Taky bych rekl, ze hlavni vlastnosti FP je pouzivani funkci v matematickem smyslu, nikoli pouzivani funkci vyssiho radu; to druhe ma ostatne i OOP (delegaty a dalsi vzory) a klasicke strukturovane programovani (odkaz na funkci).
Právě že klasické procedurální, strukturované programování odpovídá té definici "používání funkcí" (stačí jen nepoužívat vedlejší efekty), ale funkce vyššího řádu tam naopak nevyskytuje (odkaz na funkci je hezký jako callback, ale velmi těžko se transformuje a skládá). Objekty samozřejmě umožňují implementovat totéž co funkce vyššího řádu, ale člověk musí zapomenout na ten základní koncept že OOP = modelování reálných entit (troufám si říci, že tohle napáchalo škody srovnatelné s NULL a Excelem).

Ono to samozřejmě spolu souvisí - pokud se budu snažit programovat procedurálně bez vedlejších efektů, tak velmi brzo narazím na to že se mi neustále opakuje podobný kód. Tradičním řešením je (když pominu "copy&paste") generátor kódu, pak se do módy dostalo imperativní OOP.

PS: Koukám - lexikální uzávěry a lambda funkce... no to jsou určitě užitečné věci, ale dá se obejít i bez nich.