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 ... 207 208 [209] 210 211 ... 618
3121
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 20:14:15 »
uvědomujete si, že tahle debata se odvíjí od vašeho postu s odkazem na článek o IO v haskellu a monádách?
Ano. Cili nebylo by nejproduktivnejsi, kdybyste polemizoval s konkretnimi tvrzenimi z clanku, ktery jste oznacil za chybny?

je "potřeba tušit", ale "K tomu, abych v Haskellu programoval, nutne pojem Monada vubec nemusim znat"
No domnivam se (a klidne muzu mylit), ze se docela dlouho da vystacit s mlhavym chapanim, ze to je "takovej ten divnej kontejner, co se pri praci s nim musi pouzivat do". Nemuzu to potvrdit z vlastni zkusenosti, protoze co je to monada snad vim, ale prakticky jsem v Haskellu nic vetsiho nedelal. Nicmene neslysim prvne, ze to nekdo z vlastni zkusenosti potvrzuje:

No začátečník IMO prostě použije "do" notaci v IO monadu v vůbec nepotřebuje vědět, co monada je. Poměrně brzo narazí na rozdíl mezi "pure" a "monadic" výpočtem, tak se s tím nějak popere (vezme to jako nějakou "divnou" kontejnerizaci) a pořád nemusí tušit, co to monáda je. A program už může napsat docela slušný.

Nicmene pokud se chcete v debate vracet, tak bych rad pripomnel, ze se odvijela od zbojova tvrzeni, ze se v Haskellu neda poradne psat, pokud clovek nezna teorii kategorii. Vy jste se zminil, ze vam ta matematicka argumentace neni blizka. Takze CT neznate? A jak propana muzete psat v Haskellu?! :)

btw "kind" je něco jiného
Jasně, omlouvám se, upsal jsem se. Každopádně obecné monadické operace se bez podpory kindů napsat nedají, pokud se nepletu.

3122
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 19:57:48 »
článek na který jsem reagoval byl o haskellu, celou dobu mluvím o haskellu,
Dobře, beru na vědomí, že se bavíme jenom o Haskellu. Pak teda pojem monáda budeme používat jenom ve významu "třída Monad v Haskellu"? Čili i tvrzení "promisy v JS jsou monadické" je nesmysl? No, to se nám ta debata teda hodně zúží a pak už asi není v ničem sporu. V Haskellu je spousta fcí s kindem "Monad m" takže je asi potřeba aspoň tušit, co to znamená, to je víceméně sebepotvrzující tvrzení :)

Tak aspoň zkuste napsat, co se vám na tom článku nelíbilo, když jsme všechny spory zahodili :)))

3123
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 19:44:40 »
A zas jsem kurnikšopa na něco zapomněl: prosím, odlište, kdy mluvíte o tom, že něco potřebuju vědět, protože je to tak prostě v Haskellu uděláno, že to člověk potřebuje, od situace, kdy něco potřebuju vědět, protože se bez toho prostě nedá principielně obejít. To jsou dost odlišné věci. Jestli něco je nebo není potřeba v ausgerechnet v Haskellu se asi moc spořit nebudu, neznám ho tolik, abych mohl pochopit, proč jsou tam některé věci tak, jak jsou a ne jinak.

3124
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 19:41:58 »
A mimochodem, kdybyste to chtěl vzít hodně z gruntu, tak se podívejte na Elm. Ten nemá typy vyšších řádů, takže se tam obecné monadické operace implementovat nedají, má jenom pár "generik" zabudovaných v runtimu (comparable, number a ještě jedno, to si teď nevybavím). Čili v Elmu se, prosím, pojem "Monad" vůbec nevyskytuje. Carramba! A přesto tam IO jde udělat! :)

3125
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 19:38:46 »
bezesporu máme spor, tvrdíte tedy to co tvrdím, že tvdíte?
Nevím, já té vaší formulaci nerozumím. Zatím mě můžete klidně nechat být a věnovat se sepsání svých výhrad s nějakými argumenty. Když na to tak kouknu:

  • ten článek je fakticky chybný
  • analogie se seznamem je úplně mimo
  • k práci se seznamy to nezbytné není
    ukažte jak bez využití funkcí třídy monáda (a unsafeperformio :-D ) načtetu a vypíšete řetězec
  • lidi, kteří v tom chtějí dělat ještě větší zmatek (např. zaváděním nové terminologie)
  • připomělo mi to problémy některých lidí s ukazateli v cčku
  • tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
  • sčítání a celé čísla jsou grupa shodou okolností, ale ...
  • pojem monády nepotřebujete pro hello world, ale pro praktický program ("echo") už ano
  • pro práci se seznamem class Monad nepotřebujete, kdežto pro io složitější než hello world ano
... to je spousta hodně silných tvrzení, každé z nich by si imho zasloužilo vysvětlení :) Takže já myslím, že mě můžete na chvilku dát oraz a (pokud chcete) zformulovat spíš spoji pozici. Včetně relevantních a silných argumentů.

P.S. a pokud se budete chtít vymezovat vůči tomu zmíněnému článku, dost doporučuju (poctivě!) přečíst jím odkazovaný https://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/ ten je taky moc pěkný.

3126
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 19:12:54 »
takže vy tvrdíte, že mluvit o monádách v souvislosti s řetězením IO akcí v Haskellu je jako mluvit o grupách v souvislosti se sčítáním celých čísel a já to rozporuju, je to tak?
To byste měl vědět vy, co rozporujete, já vám s tím těžko poradím :)

3127
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 17:22:43 »
citovaný text se pokusím přeformulovat
Super, díky! A pokud by to šlo, chtělo by to se vyvarovat obratů jako "je to monáda", kde není jasné, co je "to" a může to znamenat "nějaký typ patří do třídy Monad" nebo "tyto operace spolu se substrátem vytvářejí to, čemu se v algebře říká (silná) monáda."

3128
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 17:18:24 »
Celý tento příspěvek (forma i obsah): http://forum.root.cz/index.php?topic=13078.msg163580#msg163580. A s tím respektem začni u sebe (tentokrát to neříkám v žertu).
Hm. Takže ten příspěvek se Swiftem nic nedokazoval. Dostatečným důkazem mé blbosti je můj příspěvek. A je to tak, protože to tak je.

Tak ok, beru na vědomí a nemám dalších otázek, ctihodnosti :)

3129
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 17:04:16 »
Prýmek měl na mysli toto (v Haskellu nedělám, proto Swift, ale klidně to jde brát jako pseudokód):
Jenom skromný dotaz: ten "důkaz že tomu vůbec nerozumím", spočívá v tom, že jsem použil jiný název nebo ještě v něčem jiném? Pokud ano, v čem? (A poprosím, jestli se můžeme pokusit opět držet tón vzájemného respektu, pokud to nejde, tak raději neodpovídej)

3130
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 16:59:27 »
Komické je tvrdit, že grupa je grupa náhodou, zatímco monáda je monádou, protože to je potřeba.
to já ale netvrdím, jestli jste to tak pochopil, tak je to chyba, těžko říct na čí straně
Ok, tady jsem to možná trochu posunul, tak zpět:

celé čísla jsou grupa shodou okolností, ale pro načtení a vypsání řetězce potřebuju aby IO byla monáda abych ty dvě akce mohl "sečíst" čili bidnout

Z faktu, že množina IO akcí + bind atd. je monádou, plynou nějaké důsledky. Konkrétně například to, že složím-li dvě IO akce za sebe pomocí bindu, jsem pořád ve stejném typu IO ().

Z faktu, že (Int,(+)) je grupa, plynou taky nějaké důsledky, například to, že složím-li sva Inty pomocí operace (+), jsem pořád ve stejném typu Int.

Opravdu je (Int,(+)) grupou "náhodou"? Opravdu nemá grupa a monáda nic společného a je to jenom Prymkova mimozita?


3131
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 16:40:46 »
(vezme to jako nějakou "divnou" kontejnerizaci)
Proč? Uplne staci, kdyz si uvedomi, jestli funkce pracuje s hodnotami nebo akcemi.

Jeste jsem neslysel, ze by javascriptista mel problem s orlisenim toho, kdyz fce vraci int a Promise[int]

3132
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 16:33:13 »
(viz můj příspěvek, který jste označil za komický)
Komické je tvrdit, že grupa je grupa náhodou, zatímco monáda je monádou, protože to je potřeba.

3133
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 16:31:43 »
Monády a grupy mají společné to, že to není nikde kloudně vysvětleno na méně než několika stránkách. Ani ti, kteří význam těchto pojmů pochopili, je nedokáží jednoduše vysvětlit, ale zato je hojně používají.
Monáda jako obecný pojem asi triviálně vysvětlit nejde. Je to prostě abstraktní koncept, který pokrývá úplně odlišné instance, proto to lidem neleze do hlavy.

Pointa je ale v tom, že nikomu monádu obecně vůbec vysvětlovat nepotřebuješ. Prostě mu řekneš "hochu, vem callbacky, které provádí io akce, a pomocí téhle operace bind je poskládej za sebe. bind zabezpečí, že se výstup jednoho callbacku předá na vstup druhého  a když dojde k chybě, tak se ta chyba nepřenáší do dalšího callbacku".

A je vymalováno. Použil jsem slovo Monáda? Nepoužil. Pochopí to každej? Pochopí. Nahonil jsem si u toho ego a udělal ze všech nedouky? Neudělal. V tom má tahle metoda vysvětlení slabinu :)

3134
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 16:25:08 »
až do momentu, kdy začal srovnávat "třídy" Monad a Group, protože analogii té první by byla "třída" GroupElement.
Ale pane kolego, vy nam zase pábíte! :)))

Teď budeme Prýmkovi omlacovat o hlavu, že obecná třída Group v Haskellu implementovat nejde?

Tak jo no, to je velmi konstruktivní a velmi k věci :))))

3135
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 16:17:45 »
pointa je v tom, že pojem monády nepotřebujete pro hello world, ale pro praktický program ("echo") už ano
zpětně uznávám, že jsem s interpretací článku asi zašel příliš daleko, stejně jako vy - přečtěte si "Edit:"
srovnání se seznamem je mimo, protože pro práci se seznamem class Monad nepotřebujete, kdežto pro io složitější než hello world ano
Ten edit na tom ale vubec nic nemeni. K tomu, abych delal io potrebuji ty OPERACE bind, return, ... NEPOTREBUJI tridu Monad.

To, co chci, je vytvaret IO akce, retezit je a dostat z nich hodnotu. To jsou OPERACE.


...a pokud ty operace (spolu se substratem, at ma opet zboj radost) splnuji nejake podminky, tak se tomu dohromady rika monada. To ale vubec nepotrebuju (jako zacatecnik) vedet.

...uplne stejne jako k secteni dvou intu potrebuju OPERACI (+) a NEPOTREBUJI tridu Group.

...a uplne stejne jako ke zretezeni listu potrebuju OPERACI (::), ale NEPOTREBUJI, ale List byl instanci tridy Monad.

mluvil jste o nepotřebě znalosti monád pro programování v haskellu, to IMHO implikuje zkušenost
Ano, mam s Haskellem jistou zkusenost. Ale bezne v nem neprogramuju. Je to uplne irelevantni, protoze se bavime o obecnych konceptech.

Stran: 1 ... 207 208 [209] 210 211 ... 618