Писать на Хаскеле можно и не зная, что такое функторы, аппликативные функторы и монады. Но знание этих абстракций позволяет вам не писать множество бойлерплейт кода.
типа знание того что монада может выражать собой эффект и современное определение для слово эффект?
раз так, я не понял, если в Хаскеле вводишь свой новый недетерминированный тип, ты же должен инстанс функтора и монады к нему описать в первую очередь?
Я могу доказать, почему Хаскель сложен: потому что ленивость (всякие foldl' vs foldl, WHNF) потому что HKT (новое для большинства людей)
Ленивость - это упрощение, а не усложнение (профилировать не приходится 😊). Функциональная программа, расчитанная на строгую семантику будет продолжать работать и в ленивой, но не наоборот. То есть о каких-то вещах программисту можно перестать думать.
раз так, я не понял, если в Хаскеле вводишь свой новый недетерминированный тип, ты же должен инстанс функтора и монады к нему описать в первую очередь?
раз так, я не понял, если в Хаскеле вводишь свой новый недетерминированный тип, ты же должен инстанс функтора и монады к нему описать в первую очередь?
1. Что такое недетерминированный тип? 2. Зачем вам нужно писать к нему инстансы функтора и монад?