Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: stryko sam 20. 06. 2016, 20:59:00
-
Chcel by som sa naucit nejaky pure funkcionalny jazyk. Ako prve ma napadol Haskell, lenze ten vraj neni pure, lebo ma IO monadu. Clean so svojim uniqueness typing system je pure, akurat je to uz mrtvy projekt. Elm zase pouziva funkcionalno reaktivny pristup, ktory je pure, akurát sa preklada do skaredeho js. Co nam teda ostava? Nasiel som desiatky zaujímavých funkcionalnych jazykov ale vôbec netusim, ktory z nich si vybrat...
-
Clojure?
-
Můžeš použít Haskell a vyhýbat se unpure záležitostem.
Proč je to "pure" pro tebe tak významné?
-
Chcel by som sa naucit nejaky pure funkcionalny jazyk. Ako prve ma napadol Haskell, lenze ten vraj neni pure, lebo ma IO monadu. Clean so svojim uniqueness typing system je pure, akurat je to uz mrtvy projekt. Elm zase pouziva funkcionalno reaktivny pristup, ktory je pure, akurát sa preklada do skaredeho js. Co nam teda ostava? Nasiel som desiatky zaujímavých funkcionalnych jazykov ale vôbec netusim, ktory z nich si vybrat...
Jdi do ELMu, má bezvadnou spolupráci s JS takže můžeš v ELMu schroupat data a poté je vizualizovat nějakou JS knihovnou a vice versa.
-
Haskell.
-
Ako prve ma napadol Haskell, lenze ten vraj neni pure, lebo ma IO monadu. Clean so svojim uniqueness typing system je pure, akurat je to uz mrtvy projekt.
Clean je +- stejně čístý jako Haskell. Haskell drží token, pomocí kterého se řetězí IO akce, uvnitř IO monády. V cleanu se předává ručně a nedá se použít vícekrát díky unique typingu.
Oba musí dělat nečisté věci, pokud mají nějak komunikovat s vnějším světem.
-
Chcel by som sa naucit nejaky pure funkcionalny jazyk. Ako prve ma napadol Haskell, lenze ten vraj neni pure, lebo ma IO monadu. Clean so svojim uniqueness typing system je pure, akurat je to uz mrtvy projekt. Elm zase pouziva funkcionalno reaktivny pristup, ktory je pure, akurát sa preklada do skaredeho js. Co nam teda ostava? Nasiel som desiatky zaujímavých funkcionalnych jazykov ale vôbec netusim, ktory z nich si vybrat...
Monády jsou pure, takže klidně ten Haskell.
-
Haskell
-
Taky si myslim, ze Haskell je v pohode (doufam, ze se to tu nezvrhne ve flame, zda je/neni Haskell pure). Pripadne se muzes podivat na Frege (Haskell nad JVM).
O Elmu vim jen z doslechu, lidi si to celkem pochvalovali. Nevim, jestli duvod "kompiluje se to do oskliveho JS" je dobry - neni pravda, ze "Haskell se kompiluje do skaredeho strojaku"? U takto poradne typovaneho jazyka by snad nemelo prilis dochazet k reseni problemu na urovni nizsi vrsty (JS).
-
https://xkcd.com/1312/
Haskell. IO monad je pure. A k tomu funkcionálnímu pohledu dostaneš ještě pořádný typový systém.
-
IO monáda je impure ... jak tazatel správně řekl, jediný pure jazyk dneška je ELM
-
a je to tu zas
-
Zkusil bych C++ s knihovnou Boost::Phoenix.
Phoenix attempts to mimic C++ in C++!!!
-
a je to tu zas
Jo, protože tohle je nejhustokrutopřísnější důvod, proč si (ne)vybrat třeba Haskell.
-
a je to tu zas
Jo, protože tohle je nejhustokrutopřísnější důvod, proč si (ne)vybrat třeba Haskell.
Přesně tak
-
Toto:
Clean je +- stejně čístý jako Haskell. Haskell drží token, pomocí kterého se řetězí IO akce, uvnitř IO monády. V cleanu se předává ručně a nedá se použít vícekrát díky unique typingu.
Oba musí dělat nečisté věci, pokud mají nějak komunikovat s vnějším světem.
Kazde IO ma sideeffecty, ci je to disk, socket alebo pamat. Mozete si akurat vybrat ako sa so side-effectami chcete vysporiadat, ci cez monadu alebo unique type.
-
Nauc se Haskell (nebo spis GHC), to je standard, siroce se to pouziva v praxi i v teorii (mezi funkcionalnimi jazyky), ma to spousta rozsireni. Tudiz pokud chces o FP hodne vedet, nevyhnes se mu tak jako tak. Az se to dostatecne naucis, budes vedet o FP dost na to, aby ses musel ptat na foru, co se ucit dal.
-
to je standard, siroce se to pouziva v praxi i v teorii (mezi funkcionalnimi jazyky)
Docela by mne zajímalo, kde široce se používá v teorii? AFAIK v teorii programovacích jazyků nebo typových systémů se moc nepoužívá protože typový systém GHC Haskellu je složitý a lambda kalkulus se seq je také složitější než lambda kalkulus ve variantách CBV (call by value) nebo CBN (call by name). A syntax se IMO častěji používá OCamlovská než Haskellovská, neboť ta OCamlovská nezávisí na odsazení.
-
to je standard, siroce se to pouziva v praxi i v teorii (mezi funkcionalnimi jazyky)
Docela by mne zajímalo, kde široce se používá v teorii? AFAIK v teorii programovacích jazyků nebo typových systémů se moc nepoužívá protože typový systém GHC Haskellu je složitý a lambda kalkulus se seq je také složitější než lambda kalkulus ve variantách CBV (call by value) nebo CBN (call by name). A syntax se IMO častěji používá OCamlovská než Haskellovská, neboť ta OCamlovská nezávisí na odsazení.
Treba na FITu jsem se setkal pouze se Scheme (v ramci jednoho nebo dvou cviceni, tj. par hodin) a trosku vice s Haskellem (tymovy projekt, zhruba za 1/3 bodu z predmetu, coz je na pomeru FITu neuveritelne moc; ~ polovina semestru). S OCamlem jsem se nesetkal za cele studium vubec. Bych cekal, ze pokud se casteji pouziva pri badani, tak nam ho do toho magisterskeho teoretickeho stupne soupnou :o.
-
to je standard, siroce se to pouziva v praxi i v teorii (mezi funkcionalnimi jazyky)
Docela by mne zajímalo, kde široce se používá v teorii? AFAIK v teorii programovacích jazyků nebo typových systémů se moc nepoužívá protože typový systém GHC Haskellu je složitý a lambda kalkulus se seq je také složitější než lambda kalkulus ve variantách CBV (call by value) nebo CBN (call by name). A syntax se IMO častěji používá OCamlovská než Haskellovská, neboť ta OCamlovská nezávisí na odsazení.
Treba na FITu jsem se setkal pouze se Scheme (v ramci jednoho nebo dvou cviceni, tj. par hodin) a trosku vice s Haskellem (tymovy projekt, zhruba za 1/3 bodu z predmetu, coz je na pomeru FITu neuveritelne moc; ~ polovina semestru). S OCamlem jsem se nesetkal za cele studium vubec. Bych cekal, ze pokud se casteji pouziva pri badani, tak nam ho do toho magisterskeho teoretickeho stupne soupnou :o.
Co jsem viděl já, tak nějaká ML syntaxe se skutečně v různých papers používá (neřekl bych, že přímo OCaml, ale to je detail). Podle mě je ale důležitější, co se dotyčný v daném jazyce může naučit (koncepty, myšlení), případně co je samozřejmě v daném jazyce možno dělat (ne teoreticky, ale s pomocí skutečných knihoven, frameworků a nástrojů). Na straně Haskellu se toho v poslední době děje docela hodně pro to, aby se z domény matematických bláznů a speciálních aplikací dostal více do pozice pragmatické volby - FP Complete, Yesod, Stack + Stackage atd.
-
to je standard, siroce se to pouziva v praxi i v teorii (mezi funkcionalnimi jazyky)
Docela by mne zajímalo, kde široce se používá v teorii? AFAIK v teorii programovacích jazyků nebo typových systémů se moc nepoužívá
Mozna mas pravdu, v akademii se tolik nepohybuji, ale fakt je, ze vidim Haskell v clancich docela casto. Navic, jestli to chapu spravne, tak Haskell puvodne vznikl (a proto je to standard) za ucelem jednotneho jazyka pro psani clanku vyzkum v oblasti prave programovacich jazyku.