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á.