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 - zboj

Stran: 1 ... 65 66 [67] 68 69 ... 101
991
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« 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 ;)

992
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« 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 :)

993
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 15:10:08 »
nevím, které "jednoduse" myslíte
Tohle: http://forum.root.cz/index.php?action=post;quote=163540;topic=13078.90

tu větu bych nepoužil, nejsem žádný matematik, myslím, že i zboj ji teď použil v žertu (asi)
Zadny zert v tom neni, je to presna odpoved na otazku. Akorat je to odpoved pro vetsinu lidi naprosto bezcenna - a presne presne presne o tomhle ten clanek je - ze lidi jsou zbytecne mateni formalne naprosto spravnymi odpovedmi, ktere jsou ale pro ne bezcenne a matouci. A pokud se jim to i presto podari pochopit, dojde k tomu aha-momentu, osvoji si tenhle slovnik a dalsim zajemcum daji presne tu stejnou matouci a v podstate bezcnennou odpoved.

"jednoduše" v tomto kontextu pro mě znamená nevyhýbat se slovu monáda, když mluvím o použití monadických operací
Ale ten clovek nechce vedet, co to je monada! On chce delat IO operace. To je presne to jadro pudla. Nechci vedet, co je to grupa, chci scitat cisla. Nezajima me vubec definice grupy. Nechci vedet, ze operace scitani ma nejake vlastnosti. Chci proste tu operaci pouzit - secist cisla.

Jo, jakmile si to osvojim, muzeme se bavit o tom, ze scitani cisel se da obecne popsat jako grupa -- uplne stejne jako kdyz se v Haskellu naucim pracovat s io akcemi, muzeme se potom bavit o tom, ze ty io operace + prislusny substrat je vlastne instance obecneho konceptu "monada". Ale nemusime. K tomu, abych io delal, to vubec nepotrebuju vedet, je to irelevantni.
Nějak se opakuješ, zkus dodat nějaké argumenty ;)

994
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 15:03:36 »
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í
Jasně, že to bylo v žertu :)

995
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 15:02:15 »
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...
Nemusí, ale bývá. Jinak stejný člověk vyřkl stejně památnou vetu "Objective-C je skvělý jazyk kombinující rychlost Smalltalku a bezpečnost Céčka".

996
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 14:47:50 »

Super, uz se blizime k pointe!

Když sčítám dvě celá čísla, tak ta grupa tam implicitně je, jen o ní nemusím mluvit (a třeba ani vědět). Ale když to vím, nepřekvapí mě, že úplně stejný objekt - grupa - se používá třeba v kvantových výpočtech (jen nad jinou množinou, ať mě zase nechytáš za slovo). Prostě abstrakce je mnohdy užitečná (když zjistím, že dva na první pohled nesouvisející objekty jsou grupa, můžu s nimi najednou pracovat stejně, podobně jako když dva různé objekty jsou monáda, tak na ně můžu použít stejný (generický) algoritmus). Jediná otázka je, jak hluboko chce člověk v té abstrakci jít.

Když provadim retezeni IO operaci, tak ta monada tam implicitně je, jen o ní nemusím mluvit (a třeba ani vědět).

Ale když to vím, nepřekvapí mě, že úplně stejný objekt - monada - se používá třeba v retezeni listu (jen nad jinou množinou, ať mě zase nechytáš za slovo). Prostě abstrakce je mnohdy užitečná (když zjistím, že dva na první pohled nesouvisející objekty jsou monada, můžu s nimi najednou pracovat stejně, [...], tak na ně můžu použít stejný (generický) algoritmus). Jediná otázka je, jak hluboko chce člověk v té abstrakci jít.

...a tramtadada! Pointa je....

K tomu, abych nekomu vysvetlil, jak se v Haskellu dela IO, nepotrebuju slovo "Monada" vubec pouzit. Ani ho nebudu nijak opisovat. Proste mu ukazu par operaci, kde jedna vytvari IO akci "nacti", jina provadi retezeni IO akci a dalsi vytvari IO akci "vypis".

Ergo... K tomu, abych v Haskellu programoval, nutne pojem Monada vubec nemusim znat, stejne jako ho nemusim znat, kdyz v Javascriptu pouzivam promisy nebo listy (oboje to "jsou monady"*). A uz vubec nepotrebuju znat pojmy funktor, prirozena transformace a bla bla bla.



* ne zboji, sorry, formalne presne to fakt vypisovat nebudu
Formálně by to bylo "monoid v kategorii endofunktorů", stručně a jasně ;)

997
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 14:32:00 »
monády se taky dají vysvětlit velice jednoduše.
tak ukažte :)
Právě hledám ten článek, na který jsem nedávno narazil, kde to je.

998
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 14:28:11 »
("dva integery sectete pomoci plus-grupy").
ne, nesečtete, uděláto to pomocí operace "sčítání"
IO akce zřetězíte pomocí funkce třídy Monad zvané lidově "bind" a teď viz můj první dnešní příspěvěk
No dyt to rikam propanajana, ne?!

"abyste mohli udelat IO, musite pochopit monady" ~ "abyste mohli  scitat integery, musite pochopit grupy"

"jak vypisu retezec? Pomoci IO Monady!" ~ "Jak sectu dva integery? Pomoci Int Grupy!"

"ukažte jak bez využití funkcí třídy monáda načtet[e] a vypíšete řetězec" ~ "ukazte, jak bez vyuziti tridy grupa sectu integery"

"k programovani v haskellu je potreba znat teorii kategorii" ~ "k scitani integeru je potreba znat abstraktni algebru"



uff, ja uz na to asi nemam silu...
Si z toho asi děláš ř*ť (?)... Teda beru to, cos teď napsal, jako (pokus o) vtip, ale odpovím vážně: Když sčítám dvě celá čísla, tak ta grupa tam implicitně je, jen o ní nemusím mluvit (a třeba ani vědět). Ale když to vím, nepřekvapí mě, že úplně stejný objekt - grupa - se používá třeba v kvantových výpočtech (jen nad jinou množinou, ať mě zase nechytáš za slovo). Prostě abstrakce je mnohdy užitečná (když zjistím, že dva na první pohled nesouvisející objekty jsou grupa, můžu s nimi najednou pracovat stejně, podobně jako když dva různé objekty jsou monáda, tak na ně můžu použít stejný (generický) algoritmus). Jediná otázka je, jak hluboko chce člověk v té abstrakci jít.

999
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 14:13:48 »
Začnou kritizovat zavedenou (a logickou) terminologii,
Zboji, ted zase kritizujes pro pkritiku, nebo opravdu nechapes pointu toho clanku?! (tomu se mi nechce verit) Ten clanek prece nekritizuje zavedenou terminologii, ani nenavrhuje zadnou jinou, ale kritizuje zpusob vysvetlovani a pouzivani dobre definovanych pojmu tam, kde jsou uplne irelevantni ("dva integery sectete pomoci plus-grupy").
Nechápu, k čemu tak dlouhý článek, když se ta "pointa" dá vyjádřit jednou větou. Jinak monády se taky dají vysvětlit velice jednoduše.

1000
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 14:05:56 »
Jo, ten článek je dost mimo. Ale na druhou stranu je pravda, že ve FP je monáda kde co, takže by to slovo šlo použít k popisu mnoha věcí, čímž ztrácí účinek (zvlášť když se tak blbě vysvětluje). Ne nadarmo se teorii kategorií říká "abstract nonsense".
souhlasím, mi právě strašně lezou na nervy lidi, kteří v tom chtějí dělat ještě větší zmatek (např. zaváděním nové terminologie)
Tak to dopadá, když do toho kafrají lidi, co tomu nerozumí. Začnou kritizovat zavedenou (a logickou) terminologii, vymyslí si nová pojmenování a tím z toho vznikne guláš. A pak ještě ten svůj guláš (bez znalosti oné zavedené terminologie) obhajují jako lepší nebo přirozenější. To je, jako kdybych Angličanům tvrdil, ať zruší všechny složené časy, protože jsou nesmyslné a ke všemu stačí simple past.

1001
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 13:53:13 »
Sčítání na celých číslech není grupa?
Není. Grupa je nějaká množina spolu s nějakou operací, jež splňuje nějaké axiomy.
Ach jo. A já jsem myslel, že se začneme bavit jako lidi :( Teď už fakt rýpeš jenom tak ze sportu, že jo? Přiznej se :)

Myslím, že kdo chce chápat a pojem grupa zná, ten v pohodě chápe, a není potřeba vypisovat "uspořádaná dvojice (Z,+), kde Z jsou celá čísla a + je operace sčítání definovaná [následuje definice sčítání], je grupa, přičemž grupa je definována [následuje definice grupy]".

Tím jsme opět u přesnosti vyjadřování, ani do toho nebudu tahat matiku, protože v případě definic by mělo být přesné vyjadřování normou všude
Je škoda, že se stejným svatým zápalem nepožaduješ po v-ovi přesnou definici monády a neprotestuješ proti termínu "IO monáda", který je o řád nepřesnější než pojem "sčítání na celých číslech".

Bylo by to užitečné, protože bys aspoň sáhodlouze vypsal to, co jsem napsal jenom ve zkratce. Krásně by pak bylo vidět, jak nesmyslné je tvrzení "v Haskellu se io dělá pomocí monády".

1) U definic jde ale hlavně o ty, co nějaký pojem neznají. Kdybys někomu neznalému vysvětloval grupy na příkladu a řekl, že sčítání na celých číslech je grupa, tak ho zmateš. Čili bavme se ne jako lidi (co to má vlastně vůbec znamenat?), ale jako matematici nebo computer scientists.

2) Tahle diskuze mě nijak zvlášť nezajímá a definici monády člověk najde na Wikipedii a milionech blogů.

1002
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 13:34:26 »
A kdo ho má většího, Mirek* nebo zboj?
O to vůbec nejde, já s klidem uznávám, že ho Zboj má většího ;) Každopádně to máme asi konečně prozatímně vyřešeno a už nebude potřeba se k tomu vracet jinak než konstruktivně :)

Ale chtěl bych se vrátit k tomu, že člověk potřebuje znát teorii kategorií, aby mohl programovat v Haskellu. Nejenom, že to není pravda, ale v jistým smyslu může být ta znalost i vyloženě zhoubná (ne pro toho člověka, ale pro jeho okolí). Výborně to vystihuje tenhle článek: https://blog.jle.im/entry/io-monad-considered-harmful.html - a speciálně dobrá je tahle pasáž:

Citace
But having a list like [1,2,3] has nothing to do with monads. Calling every list “the list monad”, or calling every situation where a list would be useful a situation where “you want the List monad” is misleading, false, and just leads to more confusion.

[...]

Even more wrong but you couldn’t really get more wrong in the first place: Use the list monoid and filter even over a list from one to one hundred.

Nakolik to můžu posoudit, IO je z hlediska typů a algebry totéž jako List. A kdyby někdo řekl, že k práci s listy potřebuje člověk znát CT, poslali bysme ho nejspíš přímou cestou do...          psychiatrické léčebny? :)
nemůžu si pomoct, ale ten článek je fakticky chybný

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?

a analogie se seznamem je úplně mimo
Jo, ten článek je dost mimo. Ale na druhou stranu je pravda, že ve FP je monáda kde co, takže by to slovo šlo použít k popisu mnoha věcí, čímž ztrácí účinek (zvlášť když se tak blbě vysvětluje). Ne nadarmo se teorii kategorií říká "abstract nonsense".

1003
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 13:12:25 »
EDIT: sorry, omylem jsem klikl na změnit místo na citace :( Původně to bylo nějak takhle:

Od kdy je proboha sčítání grupa?
Sčítání na celých číslech není grupa?

a dodatek:

Pardon, jednou se mi tam mihlo "přirozená", to byl překlep, celou dobu jsem měl namysli celá.
Není. Grupa je nějaká množina spolu s nějakou operací, jež splňuje nějaké axiomy. Tím jsme opět u přesnosti vyjadřování, ani do toho nebudu tahat matiku, protože v případě definic by mělo být přesné vyjadřování normou všude (už na ZŠ nás tehdy ještě soudružka učitelka zdrbávala za nejasné kecy, na VŠ se za to vyhazuje od zkoušky). Potom ani nejde vést rozumnou diskusi.

A k tématu - když řeknu grupa, znamená to jen, že příslušná operace má určitě vlastnosti, samozřejmě je můžu vyjmenovat, ovšem kdo by to pořád dělal. Úkolem definic je zkracovat výklad - je to něco jako syntaktický cukr. Jen v případě monád je ten aparát za tím o dost složitější.

1004
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 15. 04. 2016, 12:53:16 »
seznam v haskellu je monáda, protože je pro typ seznam definována instance třídy monáda,
Ne. Seznam "je monáda"*, protože splňuje monad laws. List je monáda úplně stejně jako je monáda IO.

ale k práci se seznamy to nezbytné není
Stejně jako nemusím vědět, že list je monáda, nemusí ani vědět, že IO je monáda. Přesto s obojím můžu pracovat.

Jiný příklad na totéž jsem nedávno dával na tom videu o Elmu: sčítání na celých číslech je grupa. Když začátečník položí otázku "jak sečtu dvě čísla", tak jenom blázen může odpovědět "pomocí součet-grupy* - aha ty nevíš, co je grupa. Takže hele, koukej: mějme operaci x .........". Je to nesmysl, protože fakt, že sčítání je grupa, je naprosto irelevantní pro otázku "jak sečtu dvě čísla". A úplně stejně je naprosto irelevantní, že IO je monáda.

ukažte jak bez využití funkcí třídy monáda (a unsafeperformio :-D ) načtetu a vypíšete řetězec
Tohle je ale pro to, co říkám, úplně irelevantní. Když tuhle otázku přesunu na sčítání: jak chceš sčítat přirozená čísla bez využití toho, že sčítání je grupa? No prostě je sečteš! ;)

P.S. pokud ti přijde, že říkám úplné nesmysly, zkus si ten odkazovaný článek přečíst ještě jednou a fakt se snaž pochopit, co přesně říká.
Od kdy je proboha sčítání grupa?

1005
Studium a uplatnění / Re:Jak si rozšiřujete své vědomosti?
« kdy: 14. 04. 2016, 21:57:11 »
Tak jestli jde jen o de dicto vs. de re
Nejen. Těch návazných problémů je pokud si pamatuju víc. Ale každopádně bych se tohodle nedržel zuby nehty, těch příkladů bude určitě víc - např. chtění, znalost, touha, záměr?
Jo, to jsou tzv. modes of existence z knihy Encoding commonsense knowledge, kde se používá Davidsonův (zase filosof) způsob zápisu vět.

Stran: 1 ... 65 66 [67] 68 69 ... 101