Care este iluzia monadă din lumea haskell

Din interpret: prieteni, nu am putut să o traduc. Pe scurt, strâns și ușor cu privire la monadele noastre iubite. Mai mult decât atât, despre o întrebare bolnavă legată de ele.

În comunitatea Haskell există o problemă cu monadele. Cu toate acestea, nu, nu exact. Permiteți-mi să reformulez: Haskell-novicienii au o problemă cu monadele, iar comunitatea Haskell este parțial vinovată de acest lucru.







Eroarea fundamentală a manualelor monad

"Ce sunt monadele?"

Cred că această întrebare este incorectă. Mulți începători de la Haskell sunt convinși cu sinceritate: merită să înțeleagă ce sunt monadele, cum vor dobândi imediat abilitatea de a le folosi. Și personal cred că 99% dintre oamenii care încearcă să învețe pe Haskell sunt supuși acestei credințe. Da, pentru unii oameni cu o mentalitate matematică, acest lucru poate fi adevărat, dar pentru oricine altcineva (care este marea majoritate), acest lucru nu este absolut cazul.

Știi cum arată? Imaginați-vă că doriți să învățați să jucați un instrument muzical. Și întrebați: "Ce sunt instrumente muzicale?" Adevărul este că ideea dispozitivului unui instrument muzical nu are nimic de-a face cu capacitatea de ao juca. Dacă într-adevăr doriți să învățați cum să joace un anumit instrument (fie că este vorba de pian, chitara, tobe sau muzicuta), trebuie să ... învețe să joace acest instrument. Dacă aflați doar ce este acest instrument, nu vă dă posibilitatea să îl jucați. "Ei bine, da, chitara are o punte, un gat, o cuier, un siruri de caractere ... Hmm ... Si ce?"







Prin urmare, întrebarea dvs. nu ar trebui să sune așa: "Nu voi intra în aceste monade, te rog ajută-mă!". Pentru că este atât de prost încât să solicite chitarist: „ceva lui Che eu nu înțeleg această chitară, explicați-mi un minut!“ În schimb, cere, de exemplu: „Eu nu înțeleg modul în care operatorul >> = în Oricare e Monada "Întrebarea prezentată în acest fel este de o mie de ori mai bună.

De ce se întâmplă acest lucru?

Presupun că motivul este că unii dezvoltatori Haskell sunt prea entuziasmați de clasele de tip. Da, tipurile de clase sunt minunate, dar nu sunt "un lucru în sine". Ele sunt utile și puternice numai în contextul aplicării lor practice, în limbaj și în biblioteci. Iar acest gând simplu este adesea uitat în căldura disputelor monadice.

Imaginați-vă că toți muzicienii din lume au început să vorbească: „! În cele din urmă am realizat instrumente muzicale“ Sunt de acord că astfel de cuvinte ar forma în oameni complet neinițiat idee greșită despre instrumentele muzicale. Nu mă înțelegeți greșit: știind că dispozitivul de instrumente muzicale este o cunoaștere extrem de utilă, dar nu are nicio legătură directă cu abilitatea jocului.

Cum putem remedia această situație? Sincer, nu știu dacă acest lucru poate fi rezolvat. Cu toate acestea, putem aduce la începători o idee simplă: monadele sunt ca instrumente muzicale, există multe dintre ele, ele sunt diferite și ar trebui să se joace și în moduri diferite.







Trimiteți-le prietenilor: