Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Mirek Prýmek

Stran: 1 ... 201 202 [203] 204 205 ... 618
3031
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 22:57:40 »
program v haskellu napsaný tak jako by haskell byl eager bude fungovat v lazy haskellu stejně jako v tom teoretickém eager
No ale co by to mělo dokazovat? Haskell je složitý, protože je lazy a ty lazy obraty by fungovaly i kdyby lazy nebyly?! No to dá rozum, na tom není nic zajímavého. Zajímavé je to, že ty obraty jsou složité, ABY mohly být lazy. Pokud jazyk lazy není, složité obraty nepotřebuje. To je odpověď na tu otázku "čemu vadí, že je lazy".

3032
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 20:17:10 »
Slovo "monoid" se tady na fóru nevyslovuje (pokud teda - podle některých - nejsi autista) ;)
Ty můžeš, o tobě to stejně všichni už víme ;)

3033
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 20:16:11 »
Jakýkoliv strict program funguje úplně v pohodě v lazy prostředí.
Tomu nerozumím. Možná myslíš jakýkoli program bez vedlejších efektů? Nebo jakýkoli program přeložený do nějakého aparátu, který v lazy prostředí umožňuje vedlejší efekty řadit? A jak bych si vůbec měl představit program v Pythonu "fungující v prostředí" Haskellu?

Jenomže to je monadická záležitost. Pure FP, kde je laziness vidět nejvíc, je spíš něco jako "projektový plán". A "krizový management" taky nevyhodnocuješ "eager", ale teprve až v momentě, kdy přijde krize.
Nevím, co myslíš tím "monadická záležitost". Haskell prostě může cokoli vyhodnotit kdykoli, takže kdybych dal za sebe
Kód: [Vybrat]
print "a"
print "b"
tak mi to může vypsat "a\nb\n" i "b\na\n".

Protože to pořadí chci zachovat, musím udělat tu opičku s tím, že oba printy uzavřu do lambd, trochu to ošperkuju tak, aby mi typový systém zaručil spuštění ve správném pořadí a to, jak je to vlastně udělaný, je obtížný pochopit, zatímco v eage jazyce je to prostě a jednoduše
Kód: [Vybrat]
print "a"
print "b"
bez jakékoli další bižuterie.

Tomu říkáš "co je na tom za komplikaci"?

Když mě to vysvětlení, že to je programovatelný středník připadá, že to vlastně ani není analogie.
Není to analogie. Mně na do notaci vadí to, že uměle zavádí pojmy z eager imperativního programování do prostředí, kde mají úplně jiný význam. Prostě return není žádný return a říkat mu return nadělá víc škody než užitku.

3034
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 19:37:44 »
:o To je citace z čeho?
To je volná improvizace na tebou nadnesenou myšlenku :)

3035
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 19:06:00 »
Ale mrzi me, ze pak pul vlakna o FP se resi, ze tohle C# mel davno a C#pisti se tam placaji po zadech, jak ostatni jazyky a pristupy jsou zaostale.
Tak co, no? Ty to víš, jak to je, tak se nad tím můžeš jenom pousmát, ne? ;)

3036
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 19:04:28 »
Já fakt nechápu, co je za komplikace v default-lazy jazyku.
1. je to pro běžné programátory nepřirozené (většina jazyků je eager)
2. neodpovídá to tomu, jak skutečně počítač na hw úrovni funguje, takže se to de facto musí nějak mapovat jedno na druhé a každé mapování zhoršuje tvoji schopnost uvažovat nad vlastnostmi výsledku.

Normální eager evaluace funguje jako kuchařka: 1. vem vejce 2. rozklepni ho do misky 3. utři ho s cukrem

Nikomu se dobrovolně nechce přemýlet nad tím, jak to dopadne, když k rozklepnutí vajíčka dojde až po utření ;)

Třeba tohle používám naprosto běžně:
Kód: [Vybrat]
zip konecny_seznam [1..] 
To prostě strict nefunguje. Resp. funguje, když vymyslíš speciální definici listu, aby byl lazy.
Jo, to máš částečně pravdu. Ale 1. když to neznáš, tak to nepotřebuješ (je to "třešnička navíc") 2. stejně elegantně jako lazy evaluací se to dá řešit nějakou podobou streamu, která je intuitivně daleko pochopitelnější.

Ale mě to přijde jako naprosto zbytečná komplikace
Komplikace to je, ale nic nemůže být větší komplikace než nutnost pochopit IO monádu, abys mohl vypsat Hello, Mirek ;)

3037
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 18:55:58 »
v současné době mi nejlepší přijde analogie "programovatelného středníku" v "do" notaci.
Mně přijde do notace naopak jako to největší zlo, které nikdy nemělo vzniknout a když už vzniklo, tak se na něho mělo zapomenout a kdokoli by se měl stydět ho zmínit ;)

3038
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 18:53:57 »
Aby pak ta metafora nebyla složitější než matematický zápis monád ;)
Přesně :)))))

Víte, sčítání, to je vlastně jako když vláček jede s polozataženými okýnky a do jednoho z těch okýnek vletí brambora s křídly a z druhé strany vypadne bábovka :)))

3039
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 18:51:47 »
K tem burritos - Crockford (alespon v tom videu, co jsem videl) monady primo neprirovnava k burritos. Tam slo o to ze
Citace
Aby clovek pochopil monady, musi se nejdrive naucit Haskell a teorii kategorii.
je v podstate to stejne jako
Citace
Aby clovek pochopil burritos, musi se nejdrive naucit spanelsky.
Rozhodne z toho nevyplyva, ze monady = burritos, "Haskell + teorie kategorii" = spanelstina nebo ze kdyz pochopim burritos, tak pochopim monady :D.
Jo, ale minule jsme se ještě bavili o jiném článku, kde někdo humorně psal zhruba ve stylu "No jasně, a pak vžycky přijde nějakej franta, kterej začne monády přirovnávat k burritos a jiní lidi to pochopí tak, že monády voní" :)

Prostě metafory jsou nebezpečné, v tom s "v" souhlasím.

Je opravdu k placi videt tu argumentovat C#pistu, jak ze pojmenovani "map, fold/reduce, filter" je nevhodne, ze C# to ma jako "select, aggregate, where" a jak je to mnohem nazornejsi a lip to vystihuje danou funkci...
Ty a to mně třeba vůbec nepobuřuje. Mám radost z toho, že principy FP probublávají do jiných jazyků a těší mě, když se lidi naučí s tím pracovat, protože ty jiné jazyky jim nevytvářejí tolik bariér jako třeba právě ten Haskell. A vůbec mi nevadí ani když "obyčejný" programátor tu věc používá a o jejich FP kořenech vůbec neví. No a? Hlavně že si osvojil hezký FP přístup a píše pěkný kód, no ne? Co můžeš mít proti? ;)
 
Hodne me prekvapilo, kdyz jsem se dozvedel o Redux, ktere je v podstate FRP (ted se divam na ten clanek a ono to cerpa i z Elmu, nepsal jsi v tom?). Ve vodach Reactu je to myslim hodne popularni a uz i s Angularem to lidi pouzivaji.
Ne, nedělal, nejsem webař, webařinu dělám jenom tak trochu. Když jsem si dělal letmej průzkum, co by se na frontendu dalo použít, viděl jsem mj. vtipnej článek o tom, že abyste v JS světě dosáhli všeho toho, co máte v Elmu musíte mít: React, Redux, bla bla bla... (ten seznam byl hrozně dlouhej) - a ten článek končil ve stylu "no a stojí vám to za to?!" ;)

Osobně jsem z JS světa nejvíc koketovat s Motorcycle, udělal jsem si pár pokusů v něm a v Elmu a hrozně moc mě odradilo to, že v Motorcycle z povahy věci (JS) může k chybě dojít kdekoli až v runtime, přičemž extenxivní používání různých futures a lazy eval atd. pak dělají tu chybu strašně těžko debugovatelnou. Tenhle dojem jsem hodně rychle nabyl a byl to definitivní důvod, proč jsem šel cestou Elmu. Možná na ten debug existují nějaký fígle, ale rychle jsem nabyl dojmu, že fakt nechci mít deset narovnáváků na pět ohýbáků a to všechno ještě dávat dohromady nějakým Gruntem nebo kýho čerta ;)

3040
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 18:35:38 »
"Return" to je v Haskellu a je to matoucí. Normálně se tomu říká "unit", což je mnohem názornější vzhledem k pravidlům pro monády, ne?
Jj.

Chtěl jsem jenom říct, že pokud bys chtěl, můžeš na levou stranu koleje napsat "x" a na pravou "[ x ]" a bude to stejně dobře vysvětlovat/ilustrovat/popisovat i jinou instanci monády - List. A jakoukoliv další. Akorát u těch funkcí je to takový nejnázornější. Funkce je prostě takový kolejiště, po kterým jezdí vláčky - vlákna. List s kolejištěm tak intuitivně nesouvisí ;)

3041
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 18:07:30 »
Ale co s jinými instancemi monád?
Jiné instance monád jde takhle vysvětlit/ilustrovat taky, ale už tam nebude taková hnedka zřejmá korespondence. Ale to není ani u toho klasického zápisu. Zkus někomu vysvětlit, že vytvoření singletonu x ->
  • se jmenuje return ;)

3042
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 17:51:43 »
Když řeknu, že monáda jsou koleje, tak to metafora je ;)
No... ne tak docela. Asi nebudeš rozporovat tvrzení

Citace
Monáda je

class Monad m where 
    return :: a -> m a 
 
    (>>=) :: m a -> (a -> m b) -> m b 
 
    (>>) :: m a -> m b -> m b 
    x >> y = x >>= \_ -> y 
 
    fail :: String -> m a 
    fail msg = error msg 

- takže co monáda je, jsem definoval pomocí nějaké posloupnosti symbolů.

...a každý ten řádek (řekněme "aspekt monády"?) můžeš zapsat právě pomocí toho "kolejového zápisu".

3043
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 17:43:05 »
možná, že jeden z problémů je používání metafor
To ale de facto není metafora. Je to v podstatě jenom jiný zápis (jiná symbolická reprezentace), stejně jako třeba graf je jiný zápis tabulky čísel.

3044
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 17:41:35 »
To je prostě jen jeden typ monády, Maybe nebo případně Error.
Přesně tak, je to jedna instance obecného konceptu monády, kde se dá snadno ukázat, k čemu je to všechno dobré,  1. aniž by bylo potřeba napsat jedinou řádku kódu nebo jiného symbolického zápisu 2. aniž by to bylo zavádějící jako burritos.

3045
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 17:07:16 »
Ty koleje vypadají dobře. Teď mi zbývá jen pochopit, co mají s těmi monádami společného...
Ty koleje vyjadřují tvůj základní cíl: chceš skládat funkce, které při úspěchu vrací typ X a pokračují ve zpracování, zatímco při neúspěchu vraxí typ Y a dál nepokračují. To je přesně to, k čemu monády slouží a je to triviální.

Potom další krok je, jak toho dosáhnout - no a dosáhneš toho vhodně zvolenými lambda funkcemi. To pořád ještě pochopí každý.

...no a pak teprve přichází ta magie: tenhle celý cirkus můžeš nadefinovat obecně, bez ohledu na konkrétní typy a tomu se říká monáda.

Snadný jak facka, ne?! ;)

Stran: 1 ... 201 202 [203] 204 205 ... 618