[Перевод] Грокаем монады |
Прим. переводчика: Это перевод первой статьи из целого цикла постов "Грокаем функциональное программирование" Мэта Тронтона. Да, это очередная статья про монады. Но она отличается от всего, что я читал по этой теме ранее. Поэтому мне захотелось перевести ее, чтобы самому внимательно вчитаться, чтобы поделиться с теми, кому трудно воспринимать такой материал на английском или кому она не попалась на глаза, чтобы, в конце концов, просто сохранить, так как сеть штука ненадежная.
Самый распространенный способ объяснить монаду - зайти через теорию категорий. Знать, что монада - это моноид в категории эндофункторов и увлекательно и полезно для общего развития, но слабо помогает в практическом смысле. Второй, равный по популярности прием - прибегнуть к помощи образов, и вот мы уже складываем значения в коробочки и достаем их оттуда (или, вообще кошмар, катимся по железной дороге). Не спорю, образы - хороший способ посмотреть на явление, но тут мы равно удалились и от теории категорий и от практики. Комментарии под такого рода статьями не перестают полниться вопросами: а что нам это дает, жили же без монады как-то?
Автор, подобно лектору по математике, у которого вылетело из головы доказательство теоремы и он доказал ее прямо у доски, ориентируясь на интуитивное представление, как бы хотелось решить задачу, постепенно пробирается от корявого куска кода к лаконичному.
Если бы даже монады не существовало, мы должны бы были ее изобрести, потому что она позволяет писать код чище.
В этом посте мы постараемся разобраться, что такое Монада
собственноручно переизобретая ее на рабочем примере.
https://habr.com/ru/post/682340/?utm_source=habrahabr&utm_medium=rss&utm_campaign=682340
Комментировать | « Пред. запись — К дневнику — След. запись » | Страницы: [1] [Новые] |