Funkcionální programátor

hu

Re:Funkcionální programátor
« Odpověď #30 kdy: 29. 06. 2015, 13:46:43 »
VHDL implementuje reaktivní paradigma. Dokonce mám pocit že zrod reaktivního paradigmatu se datuje od vzniku jazyků pro návrh EL zapojení. Takže VHDL je deklarativní jazyk.

Funkcionální prvek je vše co splňuje podmínku referenční transparentnosti. Řečeno jinak, při stejném vstupu vrátí funkce (či "něco" co funkce popisuje) stejný výsledek, je jedno kolikrát a kdy ji vyhodnocujeme (či posíláme "tomu něčemu" data).

O reaktivním paradigmatu slyším prvně. Měl bys nějaký relevantní link?

Tak nakonec google umím použít, tak netřeba, díky.


Kit

Re:Funkcionální programátor
« Odpověď #31 kdy: 29. 06. 2015, 13:47:24 »
OOP i FP paradigmata trpí tím, že valná většina programátorů neví o co vůbec jde a s klidným svědomím řekne že C++/Java/C#/Python/... implementují OOP a zároveň i FP. Přitom dané jazyky neimplementují ani jedno.

Tak treba podle me jazyk D implementuje castecne OOP i funkcionalni programovani a samozrejme i proceduralni. Ano nekdo by to nazval za zmrseni techto paradigmat ja tomu rikam idealni jazyk, protoze mi umoznuje delat vse co potrebuji zpusobem ktery me vyhovuje.

Totéž mohu tvrdit o PHP. Multiparadigmatické jazyky budou tím, co si z nich uděláme.

čumil

Re:Funkcionální programátor
« Odpověď #32 kdy: 29. 06. 2015, 13:59:58 »
VHDL implementuje reaktivní paradigma. Dokonce mám pocit že zrod reaktivního paradigmatu se datuje od vzniku jazyků pro návrh EL zapojení. Takže VHDL je deklarativní jazyk.

Funkcionální prvek je vše co splňuje podmínku referenční transparentnosti. Řečeno jinak, při stejném vstupu vrátí funkce (či "něco" co funkce popisuje) stejný výsledek, je jedno kolikrát a kdy ji vyhodnocujeme (či posíláme "tomu něčemu" data).

O reaktivním paradigmatu slyším prvně. Měl bys nějaký relevantní link?
https://en.wikipedia.org/wiki/Reactive_programming. Pokud chceš vyzkoušet, hrr na http://elm-lang.org/. Je to FRP (mix reaktivity a funkcionality). Fakt hezký jazyk, jeden z mála skutečně čistých funkcionálních jazyků (čistý z 99%, bohužel s maličkou vyjímkou, ale opravdu jen maličkou, způsobenou špatným návrhem jazyka, nikoli použitých paradigmat). Bohužel, je hodně nedodělaný, spíš hračka. Ale na vyzkoušení principu je úžasný.

Inkvizitor

Re:Funkcionální programátor
« Odpověď #33 kdy: 29. 06. 2015, 14:05:16 »
Estetičnost a udržovatelnost funkcionálních kódu je obecně oblíbený omyl, realita je mnohem horší než všechny očekávání, viz zde:
http://augustss.blogspot.cz/2007/08/quicksort-in-haskell-quicksort-is.html
http://stackoverflow.com/questions/7717691/why-is-the-minimalist-example-haskell-quicksort-not-a-true-quicksort

No já nevím, je sice asi pravda, že funkcionální programování není všelék, který vyřeší všechny problémy vývoje aplikací, ale argumentovat tím, že učebnicový QuickSort z první kapitoly většiny tutoriálů k Haskellu není "pravý QuickSort" a aby byl, muselo by se z Haskellu stát de facto C, také není moc fér.

Daniel Kozak

Re:Funkcionální programátor
« Odpověď #34 kdy: 29. 06. 2015, 14:09:20 »
VHDL implementuje reaktivní paradigma. Dokonce mám pocit že zrod reaktivního paradigmatu se datuje od vzniku jazyků pro návrh EL zapojení. Takže VHDL je deklarativní jazyk.

Funkcionální prvek je vše co splňuje podmínku referenční transparentnosti. Řečeno jinak, při stejném vstupu vrátí funkce (či "něco" co funkce popisuje) stejný výsledek, je jedno kolikrát a kdy ji vyhodnocujeme (či posíláme "tomu něčemu" data).

O reaktivním paradigmatu slyším prvně. Měl bys nějaký relevantní link?

https://en.wikipedia.org/wiki/Reactive_programming


Daniel Kozak

Re:Funkcionální programátor
« Odpověď #35 kdy: 29. 06. 2015, 14:13:58 »
OOP i FP paradigmata trpí tím, že valná většina programátorů neví o co vůbec jde a s klidným svědomím řekne že C++/Java/C#/Python/... implementují OOP a zároveň i FP. Přitom dané jazyky neimplementují ani jedno.

Tak treba podle me jazyk D implementuje castecne OOP i funkcionalni programovani a samozrejme i proceduralni. Ano nekdo by to nazval za zmrseni techto paradigmat ja tomu rikam idealni jazyk, protoze mi umoznuje delat vse co potrebuji zpusobem ktery me vyhovuje.

Totéž mohu tvrdit o PHP. Multiparadigmatické jazyky budou tím, co si z nich uděláme.

Tak to zase nee, :D. PHP je vyjimka, ackoliv je to jeden z mych oblibenych jazyku a zivi me, tak OOP je tam znacne omezene a funkcionalni programovani tam imho neexistuje.

Citace
Even php coder can become a programmer. And programmer can
become D programmer

Kit

Re:Funkcionální programátor
« Odpověď #36 kdy: 29. 06. 2015, 14:30:26 »
Totéž mohu tvrdit o PHP. Multiparadigmatické jazyky budou tím, co si z nich uděláme.

Tak to zase nee, :D. PHP je vyjimka, ackoliv je to jeden z mych oblibenych jazyku a zivi me, tak OOP je tam znacne omezene a funkcionalni programovani tam imho neexistuje.

Povídej, co z toho PHP neumí.

JSH

Re:Funkcionální programátor
« Odpověď #37 kdy: 29. 06. 2015, 14:45:13 »
Povídej, co z toho PHP neumí.
Koukal jsem a z FP toho umí celkem dost. :) Uzávěry, funkce jako plnotučné entity, částečná aplikace by se tam taky nějak dala spáchat. Akorát ty vedlejší efekty si musím hlídat. :(

Kolemjdoucí

Re:Funkcionální programátor
« Odpověď #38 kdy: 29. 06. 2015, 14:48:21 »
Takže zdroj jste četl dobrý, teď ještě zapracovat na čtení textu s porozuměním, v tomto případě doporučuji zamyslet se nad významem slovíčka like;)

Není čemu nerozumět, význam samostatných počítačů v síti jasně koresponduje s požadavkem na zasílání zpráv, které má smysl pouze v asynchronním prostředí, jako třeba dva a více počítačů v síti. V synchronním jednovláknovém prostředí potřebujete nanejvýš pozdní vazbu, ale už ne zasílání zpráv to je pak zbytečné.

Jann

Re:Funkcionální programátor
« Odpověď #39 kdy: 29. 06. 2015, 15:04:39 »
Takže zdroj jste četl dobrý, teď ještě zapracovat na čtení textu s porozuměním, v tomto případě doporučuji zamyslet se nad významem slovíčka like;)

Není čemu nerozumět, význam samostatných počítačů v síti jasně koresponduje s požadavkem na zasílání zpráv, které má smysl pouze v asynchronním prostředí, jako třeba dva a více počítačů v síti. V synchronním jednovláknovém prostředí potřebujete nanejvýš pozdní vazbu, ale už ne zasílání zpráv to je pak zbytečné.


Daniel Kozak

Re:Funkcionální programátor
« Odpověď #40 kdy: 29. 06. 2015, 15:04:51 »
Totéž mohu tvrdit o PHP. Multiparadigmatické jazyky budou tím, co si z nich uděláme.

Tak to zase nee, :D. PHP je vyjimka, ackoliv je to jeden z mych oblibenych jazyku a zivi me, tak OOP je tam znacne omezene a funkcionalni programovani tam imho neexistuje.

Povídej, co z toho PHP neumí.

immutability, pure funkce napr. Samozrejme muzes namitat ze to jde i bez toho, ale to je uz pak o necem jinem :)

čumil

Re:Funkcionální programátor
« Odpověď #41 kdy: 29. 06. 2015, 15:11:53 »
Povídej, co z toho PHP neumí.
Koukal jsem a z FP toho umí celkem dost. :) Uzávěry, funkce jako plnotučné entity, částečná aplikace by se tam taky nějak dala spáchat. Akorát ty vedlejší efekty si musím hlídat. :(
Nechci kazit iluzi, ale vše co jsi vyjmenoval nepatří mezi funkcionální prvky, jsou to prvky VYUŽÍVANÉ funkcionálním paradigmatem. Já nevím co je na tom tak těžkýho. Splňuje každá funkce jazyka referenční transparentnost a čistototu? Ne? Pak to nebude funkcionální jazyk.

Víš proč se v dnešní době říká některým jazyků funkcionální, a jiným čistě funkcionální? Protože v historii bylo opravdu hodně blbů kteří jakmile viděly lambda funkci (či vůbec jakoukoli funkci ...) začali křičet: "Juuu funkcionální jazyk". No, a tak se zavedl termín (pure FP) pro odlišení těch SKUTEČNĚ funkcionálních od toho špatně pochopeného zbytku.

Ale ne, bude se muset vymyslet ještě něco na způsob really pure FP, díky Haskellu, který na úplnou čistotu rezignoval, a zavedl systém částečné nečistoty, která, když má člověk smůlu na blbý typ aplikace, může tvořit i většinu kódu ...

v

Re:Funkcionální programátor
« Odpověď #42 kdy: 29. 06. 2015, 15:20:33 »
Povídej, co z toho PHP neumí.
Koukal jsem a z FP toho umí celkem dost. :) Uzávěry, funkce jako plnotučné entity, částečná aplikace by se tam taky nějak dala spáchat. Akorát ty vedlejší efekty si musím hlídat. :(
systém částečné nečistoty

tím myslíte Control.Monad.ST?

čumil

Re:Funkcionální programátor
« Odpověď #43 kdy: 29. 06. 2015, 15:21:59 »
Jo, nedopsal sem myšlenku, Haskell právě živí tu dezinformaci, protože funkcionální fakt není, ačkoli tvrdí že je pure FP, takže tadáááá, ať žije zmatek.

čumil

Re:Funkcionální programátor
« Odpověď #44 kdy: 29. 06. 2015, 15:22:35 »
Povídej, co z toho PHP neumí.
Koukal jsem a z FP toho umí celkem dost. :) Uzávěry, funkce jako plnotučné entity, částečná aplikace by se tam taky nějak dala spáchat. Akorát ty vedlejší efekty si musím hlídat. :(
systém částečné nečistoty

tím myslíte Control.Monad.ST?
Tím myslím celou IO monádu ...