Вопросы с тегом «monads»

Монада в программировании - это составное описание вычислений. Монады - важная конструкция в языках функционального программирования, таких как Haskell.

1416
Что такое монада?

Кратко рассмотрев недавно Хаскелла, каким было бы краткое, сжатое, практическое объяснение того, что в действительности представляет собой монада? Я обнаружил, что большинство объяснений, с которыми я столкнулся, было довольно недоступным и лишенным практических...

743
Монада на простом английском? (Для программиста ООП без фона FP)

С точки зрения того, что программист ООП понимает (без какой-либо функциональной основы программирования), что такое монада? Какую проблему он решает и какие места он использует чаще всего? РЕДАКТИРОВАТЬ: Чтобы прояснить то понимание, которое я искал, допустим, вы конвертировали приложение FP с...

723
Монада - это просто моноид в категории эндофункторов, в чем проблема?

Кто первым сказал следующее? Монада - это просто моноид в категории эндофункторов, в чем проблема? И на менее важной ноте, правда ли это, и если да, то могли бы вы дать объяснение (надеюсь, что оно может быть понято кем-то, кто не имеет большого опыта в...

565
Масштабный дизайн в Haskell? [закрыто]

Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время он не принимает ответы. Закрыто 3 года назад . Locked . Этот вопрос и его ответы заблокированы, потому что вопрос не по теме, но имеет историческое значение. В настоящее время он не принимает новые ответы или...

445
Scalaz повторяет: «Поднимает» EnumeratorT для соответствия «IterateeT» для «большей» монады

Если у меня есть EnumeratorTи соответствующий, IterateeTя могу запустить их вместе: val en: EnumeratorT[String, Task] = EnumeratorT.enumList(List("a", "b", "c")) val it: IterateeT[String, Task, Int] = IterateeT.length (it &= en).run : Task[Int] Если монада перечислителя "больше", чем монада...

369
Что такое бесплатные монады?

Я видел этот термин Free Монада всплывал каждый в настоящее время , и затем в течение некоторого времени, но каждый раз кажется , что использование / обсуждать их , не давая объяснение того , что они есть. Итак: что такое бесплатные монады? (Я бы сказал, что я знаком с монадами и основами Хаскелла,...

367
Зачем нам нужны монады?

По моему скромному мнению, ответы на известный вопрос "Что такое монада?" особенно те, за кого проголосовали, попытайтесь объяснить, что такое монада, не объясняя, почему монады действительно необходимы . Могут ли они быть объяснены как решение...

210
Хорошие примеры не функтор / функтор / аппликатив / монада?

Объясняя кому-то, что такое класс типов X, я стараюсь найти хорошие примеры структур данных, которые в точности X. Итак, я прошу примеры для: Конструктор типа, который не является Functor. Конструктор типа, который является Functor, но не Applicative. Конструктор типа, который является...

190
В C # Что такое монада?

В наши дни много говорят о монадах. Я прочитал несколько статей / постов в блоге, но я не могу зайти достаточно далеко с их примерами, чтобы полностью понять концепцию. Причина в том, что монады являются концепцией функционального языка, и поэтому примеры приведены на языках, с которыми я не...

172
Почему побочные эффекты смоделированы как монады в Haskell?

Кто-нибудь может дать несколько советов о том, почему нечистые вычисления в Хаскеле моделируются как монады? Я имею в виду, что монада - это просто интерфейс с 4 операциями, так что же было причиной для моделирования побочных эффектов в ней?...

122
Какова цель читающей монады?

Читательская монада настолько сложна и кажется бесполезной. В императивном языке, таком как Java или C ++, нет эквивалентной концепции для читающей монады, если я не ошибаюсь. Вы можете привести мне простой пример и немного прояснить...

114
Шаблон, чтобы избежать вложенных блоков try catch?

Рассмотрим ситуацию, когда у меня есть три (или более) способа выполнения вычислений, каждый из которых может завершиться ошибкой за исключением. Чтобы попытаться выполнить каждый расчет, пока мы не найдем тот, который будет успешным, я сделал следующее: double val; try { val = calc1(); } catch...

106
Функциональные шаблоны проектирования [закрыто]

Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow. Закрыт 4 года назад . Уточните этот вопрос Существует множество функциональных идиом:...

98
Что такое индексированная монада?

Что такое индексированная монада и мотивация этой монады? Я читал, что это помогает отслеживать побочные эффекты. Но подпись типа и документация никуда меня не ведут. Какой был бы пример того, как это может помочь отслеживать побочные эффекты (или любой другой допустимый пример)?...

97
Как играть с Control.Monad.Writer в haskell?

Я новичок в функциональном программировании и недавно учился на Learn You a Haskell , но когда я прочитал эту главу , я застрял в программе ниже: import Control.Monad.Writer logNumber :: Int -> Writer [String] Int logNumber x = Writer (x, ["Got number: " ++ show x]) multWithLog :: Writer...

91
Разница между состоянием, ST, IORef и MVar

Я работаю над написанием схемы за 48 часов (у меня около 85 часов), и я дошел до части о добавлении переменных и назначений . В этой главе есть большой концептуальный скачок, и я бы хотел, чтобы он был сделан в два этапа с хорошим рефакторингом между ними, а не сразу к окончательному решению. Тем...

91
mtl, трансформаторы, monads-fd, monadLib и парадокс выбора

В Hackage есть несколько пакетов для преобразователей монад: mtl : библиотека преобразователей монад трансформаторы : Конкретный функтор и монадные трансформаторы monads-fd : классы монад, использующие функциональные зависимости monads-tf : классы монад, использующие семейства типов monadLib :...

87
Путать с преобразованием for-computing в flatMap / Map

Кажется, я действительно не понимаю Map и FlatMap. Чего я не понимаю, так это того, что for-complation представляет собой последовательность вложенных вызовов map и flatMap. Следующий пример взят из функционального программирования на Scala. def...