Есть слишком много учебников на монадах, которые говорят... "Послушайте, вот случай, когда мы можем использовать монаду" или "Это то, для чего монада". То, что я хочу знать, это то, что некоторые из шагов, которые люди используют, чтобы прийти к выводу, что они могут сказать себе: "Джи Виз! Похоже, мы можем использовать монаду здесь!"
Итак, когда кто-то говорит мне... "(blah) не имеет ничего общего с монадой...", это действительно не помогает мне ответить на мой вопрос:
- Как мне определить, какие шаблоны в программах могут быть выражены с помощью монад?
- Как я могу написать свою собственную индивидуальную монаду, когда я определил потенциал для их использования?
Я начал очень длинный вопрос здесь о монадах, если кому-то интересно помочь - Карта и Сократить Монаду для Clojure... Как насчет Монастыря Юкш?.
Вернуться к этому вопросу:
Когда мы должны использовать монаду вместо макроса и наоборот?
- Я читал статьи и смотрел презентации, которые говорят... "Монады используются для абстракции DSL".... но большинство библиотек DSL1 (w121) (например, hiccup и korma) используют defmacro, и он работает Великий.
И зачем нам нужны монады в clojure, если у нас есть макросы?