Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: stryko sam 20. 06. 2016, 20:59:00

Název: Aký funkcionálny jazyk?
Přispěvatel: 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...
Název: Re:Aky funkcionalny jazyk?
Přispěvatel: DK 20. 06. 2016, 21:05:57
Clojure?
Název: Re:Aky funkcionalny jazyk?
Přispěvatel: Kit 20. 06. 2016, 21:12:02
Můžeš použít Haskell a vyhýbat se unpure záležitostem.

Proč je to "pure" pro tebe tak významné?
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: čumil 20. 06. 2016, 21:26:03
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.
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: Inkvizitor 20. 06. 2016, 21:40:54
Haskell.
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: JSH 21. 06. 2016, 00:16:56
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.
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: zboj 21. 06. 2016, 01:23:11
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.
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: suic 21. 06. 2016, 01:28:39
Haskell
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: noef 21. 06. 2016, 07:17:50
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).
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: andy 21. 06. 2016, 09:07:35
https://xkcd.com/1312/

Haskell. IO monad je pure. A k tomu funkcionálnímu pohledu dostaneš ještě pořádný typový systém.
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: čumil 21. 06. 2016, 09:41:14
IO monáda je impure ... jak tazatel správně řekl, jediný pure jazyk dneška je ELM
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: v 21. 06. 2016, 09:50:59
a je to tu zas
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: itexpert 21. 06. 2016, 09:53:38
Zkusil bych C++ s knihovnou Boost::Phoenix.

Citace
Phoenix attempts to mimic C++ in C++!!!
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: Inkvizitor 21. 06. 2016, 12:27:27
a je to tu zas

Jo, protože tohle je nejhustokrutopřísnější důvod, proč si (ne)vybrat třeba Haskell.
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: čumil 21. 06. 2016, 13:01:47
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
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: kimec 21. 06. 2016, 14:11:41
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.
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: JS 21. 06. 2016, 15:49:29
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.
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: Radek Miček 21. 06. 2016, 18:59:06
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í.
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: noef 21. 06. 2016, 19:44:24
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.
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: Inkvizitor 22. 06. 2016, 07:39:21
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.
Název: Re:Aký funkcionálny jazyk?
Přispěvatel: JS 22. 06. 2016, 09:03:36
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.