ПредишенСледващото

От преводаческите: приятели, аз не можех да го преведе. Накратко, сбито и лесно любимите ни монади. По-скоро, един горещ въпрос, свързан с тях.

В Haskell-общност, че има проблем с монади. Но не, не съвсем. Нека перифразирам: в Haskell-начинаещи, че има проблем с Монадите и Haskell Общността частично виновен за това.

Основната грешка на монадите водачи

"Това, което е монада?"

Мисля, че самият въпрос не е наред. Много Haskell-начинаещи искрено убеден, че след като се разбере, че представляват монади, те веднага да придобие способността да ги използвате. И лично аз смятам, че 99% от хората се опитват да проучат Haskell, които подлежат на такава вяра. Да, за някои хора с математически ред на ума, това може да е истина, но и за всички останали (от които по-голямата част) е абсолютно не е така.

Знаеш ли какво е? Представете си, че искате да се научи да свири на музикален инструмент. И пита: "И това, което е най-музикални инструменти?" Истината е, че идеята за устройството на музикален инструмент е без значение за способността да го играят. Ако наистина искате да се научите как да играят даден инструмент (независимо дали става дума за пиано, китара, барабани или хармоника), вие трябва да ... се научи да свири на този инструмент. Ако просто знам, че представлява този инструмент, той не ви дари с възможността да го играят. "Е, да, китарата има шезлонги, грифа, клечките, струни ... Хм ... И какво от това?"

Така че на въпроса ви никога не трябва да бъде: "Аз съм Че не е vrublyus тези монади, моля да ми помогне!". Тъй като това е толкова глупав, че да поиска от китариста: "нещо на Че аз не разбирам тази китара, да ми го обясни малко!" Вместо това, питам, като например: "Не мога да разбера как операторът >> = в двата случая е Монада . "въпросът, поставен по този начин, хиляди пъти по-добре.

Защо се случва това?

Вярвам, че причината за това е, че някои от Haskell-разработчиците твърде ентусиазиран за видовете класове. Да, класове тип са големи, но те не са "нещо само по себе си". Те са полезни и силна само в контекста на тяхното практическо приложение на езика и библиотеки. И това е тази проста идея често се забравя в разгара на монадно спорове.

Представете си, че всички музиканти в света са започнали да говорят: "Най-накрая осъзнах, музикални инструменти" Съгласен съм, че тези думи ще се образуват в напълно непосветените хора грешна представа за музикални инструменти. Не ме разбирайте погрешно: познаването на устройството на музикални инструменти - това е една изключително полезни знания, но това не е пряко свързано с уменията на играта.

Как да се определи тази ситуация? Честно казано, аз не знам дали ще можем да го оправя. Въпреки това, ние можем да предадем на новака една проста идея: монадите са като музикални инструменти, много от тях, те са различни и те трябва да играе по различни начини.

Подкрепете проекта - споделете линка, благодаря!