Jak si rozšiřujete své vědomosti?

v

Re:Jak si rozšiřujete své vědomosti?
« Odpověď #120 kdy: 15. 04. 2016, 15:25:47 »
Já na vašem místě bych ten boj prostě vzdal, nestojí to za to.
Asi mate pravdu. Kdyz mne je to lito, protoze tenhle pristup bohuzel zbytecne spoustu lidi od FP uplne zbytecne odradi :( No, snad se objevi dost lidi, kteri tu zpusobenou skodu budou umet napravit...

Tak aspon vtipek na zaver:

Citace
Just today,  I showed a coworker (we are not a functional shop, mind you) how to simplify his code by isolating his control flow by building a function which chains functions and passes the results of one into the input of the other, and not having to muck about with intermediate state.  He was sold. Then someone else looked at the code and was like "Monads!"  and he looked shocked, enlightened, and dismayed.   The dismay was actually because he expected his understanding of monads to be some sort of  epoch in his programming career, an epiphany accompanied by trumpets and angels singing.  But it was as mundane as it should be.
https://groups.google.com/forum/#!topic/elm-discuss/hEvS6DgNbwM [zvyrazneni moje]
jak dlouho vlastně programujete v haskellu?


Re:Jak si rozšiřujete své vědomosti?
« Odpověď #121 kdy: 15. 04. 2016, 15:26:15 »
jak dlouho vlastně programujete v haskellu?
Vubec.

v

Re:Jak si rozšiřujete své vědomosti?
« Odpověď #122 kdy: 15. 04. 2016, 15:42:25 »
jak dlouho vlastně programujete v haskellu?
Vubec.
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jak si rozšiřujete své vědomosti?
« Odpověď #123 kdy: 15. 04. 2016, 15:45:17 »
když chcete v haskellu sečíst dvě čísla, použijete operátor (+), co když chcete načíst a vypsat řetězec (echo)? potřebujete k tomu nějaký operátor?
Jistě. Stejně jako ke sčítání potřebuju nějaký operátor, k zřetězení seznamů potřebuju nějaký operátor, tak úplně stejně i k ZŘETĚZENÍ IO AKCÍ potřebuju nějaký operátor. Že ty operátory splňují nějaké zákony, díky čemuž ten komplex můžu nazývat "monáda" je úplně irelevantní k problému "jak zřetězím IO AKCE?" nebo "Jak provedu IO AKCI?". A nejenom, že to je irelevantní, ale pokud to není dostatečně pochopeno, je to vyloženě škodlivé, protože pak padají přesně tyhle dotazy.
 
Zkus se trochu oprostit od Haskellu a podívej se na to z nadhledu. Děti se prvně naučí sčítat celá čísla. Až o hooodně později se jenom některé z nich dozví, že vlastně to, co do té doby bez problémů dělaly, se dá popsat obecně a říká se tomu grupa. Stejně tak List i IO se oboje dá popsat obecně (jednotně,abstraktně) a tento obecný pojem je MONÁDA.

Pojem "IO monáda" je stejně nesmyslný a zhoubný jako pojem "sčítání grupa". Ten naštěstí nikdo nepoužívá, tak blbí nejsme.

Já se obávám, že tihle lidé zkrátka budou trvat na tom, že než se v první třídě děti naučí počítat, tak by jim nejprve měla být vysvětlena algebra, teorie těles, grup apod. Bez toho, aby prvňáček věděl, co je komutativita, a bez chápání důkazu toho, že operace sčítání je pro přirozená čísla komutativní, prostě sčítat jednociferná čísla nesmí.

Já na vašem místě bych ten boj prostě vzdal, nestojí to za to. Mé děti umí sčítat i malou násobilku bez toho, že by věděly, co je "komutativní monoid". Přestože tomu někteří místní diskutující nebudou chtít uvěřit, protože bez chápání vysokoškolské algebry přece sčítat nejde? Nebo alespoň ne správně.
naprostá demagogie, tohle tu nikdo netvrdil
Zvykej si na úroveň Prýmkovy  (pseudo)argumentace ;)

V tomto konkrétním případě v podstatě vehementně tvrdí, že nemá smysl používat slovo "kladivo" (dokonce, že je to nesmyslné), protože když vytáhnu křováka z buše a řeknu mu "podej mi kladivo", tak nebude stejně vědět, která bije. Takže podle něj je lepší říct mu "podej mi ten klacek s kusem železa" (bude-li tedy křovák vědět, co je železo, s klackem asi problém nebude), jenže pak se bude divit, až bezděčně máchne a usekne si prsty sekerou. Přitom kladivo a sekera se *funkcionálně* prolínají, jde "jen" o úhel natočení. V IT naštěstí useknutí prstu nehrozí, nanejvýš útok tyranosaura :)

Re:Jak si rozšiřujete své vědomosti?
« Odpověď #124 kdy: 15. 04. 2016, 15:46:42 »
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
Mate volne pole mi to vyvratit. Zatim jste se ale jenom omezil na konstatovani, ze clanek je chybny, srovnani s Listem je uplne mimo, nekdo zavadi novou terminologii atd. atd. - vsechno bez jedineho argumentu.

...a vubec netusim, jak to souvisi s tim, jestli programuju nebo neprogramuju v Haskellu. Nebo do te uz tak az prilis dlouhe a neplodne diskuse zacneme misto skutecnych argumentu tahat vykriky ad hominem?


zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jak si rozšiřujete své vědomosti?
« Odpověď #125 kdy: 15. 04. 2016, 15:47:00 »
jak dlouho vlastně programujete v haskellu?
Vubec.
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
Howgh :) Téma se podle mne vyčerpalo, navrhuji přejít k jinému problému, třeba jestli je goto zlo ;)

Re:Jak si rozšiřujete své vědomosti?
« Odpověď #126 kdy: 15. 04. 2016, 15:50:38 »
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
Mimochodem, neni zadna "monada v haskellu". Monada je pojem z algebry/CT. Trida Monad v Haskellu je jenom implementace toho konceptu. A s grupami to srovnavam proto, ze grupa, monoid a .... monada jsou velmi pribuzne pojmy.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jak si rozšiřujete své vědomosti?
« Odpověď #127 kdy: 15. 04. 2016, 15:54:40 »
jak dlouho vlastně programujete v haskellu?
Vubec.
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
Ono by to porovnání nebylo úplně debilní až do momentu, kdy začal srovnávat "třídy" Monad a Group, protože analogii té první by byla "třída" GroupElement. Pak by se dalo bavit o podrobnostech a souvislostech a došli bychom k tomu, že to v (některých) jazycích je.

v

Re:Jak si rozšiřujete své vědomosti?
« Odpověď #128 kdy: 15. 04. 2016, 16:00:22 »
jak dlouho vlastně programujete v haskellu?
Vubec.
tak to asi vysvětluje proč furt srovnáváte grupy a monády v haskellu
Ono by to porovnání nebylo úplně debilní až do momentu, kdy začal srovnávat "třídy" Monad a Group, protože analogii té první by byla "třída" GroupElement. Pak by se dalo bavit o podrobnostech a souvislostech a došli bychom k tomu, že to v (některých) jazycích je.
já jsem možná i něco takové napsal, nebo vy, určitě jsem chtěl, sčítání a 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

Re:Jak si rozšiřujete své vědomosti?
« Odpověď #129 kdy: 15. 04. 2016, 16:04:37 »
sčítání a 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
To je velmi komicke tvrzeni. Operace scitani intu (spolu s mnozinou intu, at zbojovi nepraskne zilka) je grupa uplne stejne "nahodou", jako jsou jsou "nahodou" operace bind, return, ... plus mnozina IO akci monadou.

Oboje je proste nejaka mnozina a nejaka operace/vic operaci a pokud ten -celkem- (oprava: celek) splnuje nejake vlastnosti, tak se tomu rika bug grupa nebo monada. Co je na tom tak tezkeho pochopit?

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Jak si rozšiřujete své vědomosti?
« Odpověď #130 kdy: 15. 04. 2016, 16:05:31 »
Formálně by to bylo "monoid v kategorii endofunktorů", stručně a jasně ;)
No prave :) Chtel jsem se v-a zeptat, jestli "jednoduse" ma znamenat "nejstrucneji" a pouzit tuhle okridlenou vetu, ale bylo mi to blby. No tak jsi to udelal za me, to jsem rad. :)

...a navic je to takova krasna tecka za touhle debatou, ktera krasne ilustruje, jak se tohle tema vzdycky zvrhne do tehle okridlene vety, kterou muze jako argument pouzit fakt jenom autista... Krasna ilustrace, ze kdyz nekdo monady neni schopen pochopit, nemusi to vubec byt jeho chyba...
nevím, které "jednoduse" myslíte
tu větu bych nepoužil, nejsem žádný matematik, myslím, že i zboj ji teď použil v žertu (asi)
"jednoduše" v tomto kontextu pro mě znamená nevyhýbat se slovu monáda, když mluvím o použití monadických operací
Jinak tady to je v kontextu: https://books.google.ie/books?id=MXboNPdTv7QC&pg=PA138&lpg=PA138&dq=%22monoid+in+the+category+of+endofunctors%22+mac+lane&source=bl&ots=feQWTkH2Uw&sig=tv-1JwaMOygKGmFE2vM2FhJVS9o&hl=en&ei=5iWsTJCkBIPSsAPQwJ36Aw&sa=X&oi=book_result&ct=result&redir_esc=y#v=onepage&q&f=false

v

Re:Jak si rozšiřujete své vědomosti?
« Odpověď #131 kdy: 15. 04. 2016, 16:11:09 »
Mate volne pole mi to vyvratit. Zatim jste se ale jenom omezil na konstatovani, ze clanek je chybny, srovnani s Listem je uplne mimo, nekdo zavadi novou terminologii atd. atd. - vsechno bez jedineho argumentu.
začal jsem tímto:
Citace
Citace
There is nothing that has to do with monads at all in printing a string.
a co když chci řetězec načíst a vypsat?
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

...a vubec netusim, jak to souvisi s tim, jestli programuju nebo neprogramuju v Haskellu. Nebo do te uz tak az prilis dlouhe a neplodne diskuse zacneme misto skutecnych argumentu tahat vykriky ad hominem?
mluvil jste o nepotřebě znalosti monád pro programování v haskellu, to IMHO implikuje zkušenost

Karel

Re:Jak si rozšiřujete své vědomosti?
« Odpověď #132 kdy: 15. 04. 2016, 16:12:28 »

naprostá demagogie, tohle tu nikdo netvrdil

Tak samozřejmě, že je to demagogie. Předvádíte ji tu vy, předvádí ji zboj. Předpokládám, že je to vaše preferovaná forma komunikace, tak jsem ji přijal a podřídil se vám.

Také jsem uvažoval, že bych zkusil nějakou tu manipulaci. Ale to mi moc nejde, bývám pak spíše směšný než vtipný. Ale třebas zboj je v tom výborný. Líbí se mi, jak mu Mirek nadhodí tři argumenty a zboj najde ten nejslabší a ten jediný torpéduje. Těm silnějším se vyhne. Plus otrávené studna "to je špatně, každý rozumný člověk ví, že je to špatně a jen úplný debil by neviděl, že je to špatně, takže není důvod se vůbec zmiňovat o tom, proč je to špatně". Připadá mi to trochu jako zpátky na základní škole. Jen čekám, kdy na něj vyrukujete stylem "Mirku! Kde máš čepici?!"

v

Re:Jak si rozšiřujete své vědomosti?
« Odpověď #133 kdy: 15. 04. 2016, 16:13:53 »

naprostá demagogie, tohle tu nikdo netvrdil
Tak samozřejmě, že je to demagogie. Předvádíte ji tu vy ...
prosím citaci

Re:Jak si rozšiřujete své vědomosti?
« Odpověď #134 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.