Pull to refresh

Comments 19

UFO just landed and posted this here
Нет, лучше так: «Абстракция последовательной связки вычислений.»
UFO just landed and posted this here
По каким-то историческим причинам, понятие «монада» покрылось некой сакральной тайной. А как правильно выразился один разработчик, «монаду можно воспринимать как особый паттерн проектирования». Ничего сакрального в нём нет.
Понятно, что монада — это не так страшно, как ее малюют.
Недавно в учебнике прочитал пример: пример монады в других языках — объект jquery. И в принципе это верно, но много ли frontend разработчиков знают, как оно там внутри устроено? Сомневаюсь.

Тем более, что, объясняя, что такое монада, нужно не только объяснить «что это», но и «как это устроено» и «зачем/как/когда это использовать».

Я например начал использовать монады довольно просто. Но до сих пор не осознал до конца ее сакрального смысла. Не проникся так сказать.
Тем более, что, объясняя, что такое монада, нужно не только объяснить «что это», но и «как это устроено» и «зачем/как/когда это использовать».

Что это и когда использовать — да. Но как устроено… Я не вижу необходимости в знании внутреннего устройства монады. Да, если монада рассматривается как объект исследования — тогда конечно. Если же она рассматривается как инструмент для практического применения — в этом случае вовсе не обязательно знать, что там у неё под капотом.
times :: Monad m => Int -> m () -> m ()
times r a = mapM_ (\_ -> a) [1..r]

Можно через sequence_
times r = sequence_ . replicate r
UFO just landed and posted this here
Монада — моноид в категории эндофункторов.
--Одна из проблем заключается в тестировании приложения.
--Мы не можем контролировать порядок, в котором выполняются операции

дак научитесь писать юнит-тесты. Или это особенность (недостаток) Хаскеля?
Это особенность чистого кода. Мы действительно не можем контролировать порядок, в котором выполняются чистые (математические) функции, ведь конечный результат их работы от этого порядка никак не зависит.
любой поряд выполнения кода кем-то логически запрограмирован.
А юнит тесты все таки позволяют любой порядок выполнить. На этом мир TDD держится
Речь идет о тестировании многопоточного приложения и том, что порядок, в котором выполняются операции в различных потоках, не фиксирован.
Sign up to leave a comment.