Публикации по теме 'monads'


Работа с побочными эффектами в унисон
Как отделить чистые функции от функций с побочными эффектами В мире чистого функционального программирования большое пугало — это функции с побочными эффектами. Что именно мы подразумеваем под побочными эффектами? Чистая функция работает как функции в математике. Выход функции определяется исключительно ее входными аргументами. Однако в программировании некоторые функции скрытны и изменяют какое-то внутреннее состояние или производят вывод, считывая какое-то изменяемое состояние...

Понимание декларативного Javascript с использованием монад
Как инженеры-программисты, значительная часть нашей работы связана с созданием конвейеров данных, где в несколько этапов мы инициализируем и преобразуем значения на основе разных источников данных из одного типа в другой. Представьте себе следующий сценарий: В приложении для микроблогов мы хотим определить количество лайков у первого комментария к сообщению, код будет выглядеть так: const postId = 34 const postObject = repository.findOneById(34) const postComments =..

Гнездо.JS | Монады -> Возможно
Гнездо.JS | Монады -> Возможно Монада Maybe, также известная как монада Option, представляет собой монаду, которая используется для представления вычислений, которые могут иметь или не иметь значение. Обычно он используется для обработки возможности нулевых или неопределенных значений функциональным и компонуемым способом. Монада Maybe обычно реализуется как объект, имеющий два подтипа: Just и Nothing . Подтип Just содержит значение, а подтип Nothing представляет отсутствие..

Haskell - это не программирование
Введение в «Magical Haskell» В этой главе: обучение детей хаскеллу * коварным слонам * где мой цикл for ? * есть лучший способ учиться? * haskell в картинках обновление : главы с 1 по 5 книги готовы, прочтите и оставьте отзыв ! В последнее время я трачу время на Теорию типов и лямбда-куб . Например, я внедрил библиотеку типов SystemF-omega-ish в coffeescript, чтобы узнать, как все работает , как говорил доктор Фейнман. Затем я перешел к разработке функциональных языков..

Объясните свободную монаду, как будто мне пять лет (часть 2)
В первой части этого поста мы говорили о том, как Free Monad может собрать монаду из Functor. Для этого вы можете создать программы, подобные DSL, и сгенерировать другую программу. Созданная вами программа становится простой структурой данных, представляющей логику предметной области. После того, как вы составили программу, вы можете соединить эти программы с интерпретатором. Вы можете переключить другой интерпретатор на dev и QA. Вы также можете абстрагироваться от реализации..

Монады JavaScript
Если вы хотите ориентироваться в этой серии постов, вот основное оглавление: Эта история поможет вам начать загрузку приложения. Это часть 2, где мы определяем проблему и вводим монаду Maybe Это часть 3, где мы добавляем в нашу монаду возможность отображения Это часть 4, где мы рассмотрим точки бесплатно Это часть 5, где мы добавляем цепочку Это часть 6, где мы приводим данные из реального мира Я нашел эту замечательную статью о том, что вы можете найти здесь . Я..

Promise + Either Monad в JavaScript
Монады - это довольно полезный способ применения некоторых шаблонов в коде, которые (математически) гарантированно дадут вам определенные результаты. Я трачу много времени на кодирование на JavaScript (бедняжка!) Для Node.js. За последние несколько лет я обнаружил, что последовательное использование обещаний может оказаться непростым делом. В особенности сейчас парадигма await/async в ES2017, вероятно, еще больше сбивает с толку вопрос о том, какой стиль программирования принять. В..