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

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

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

3
Как играть с 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 [String] …
97 haskell  monads 

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

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

5
Путать с преобразованием for-computing в flatMap / Map
Кажется, я действительно не понимаю Map и FlatMap. Чего я не понимаю, так это того, что for-complation представляет собой последовательность вложенных вызовов map и flatMap. Следующий пример взят из функционального программирования на Scala. def bothMatch(pat:String,pat2:String,s:String):Option[Boolean] = for { f <- mkMatcher(pat) g <- mkMatcher(pat2) } yield f(s) && g(s) переводится …

18
В чем смысл класса Option [T]?
Я не могу понять смысл Option[T]класса в Scala. Я имею в виду, я не вижу никаких преимуществ Noneсверх null. Например, рассмотрим код: object Main{ class Person(name: String, var age: int){ def display = println(name+" "+age) } def getPerson1: Person = { // returns a Person instance or null } def …

1
Как разложить монаду продолжения в левую и правую примыкания?
Как монаду состояния можно разложить на Product (слева - функтор) и Reader (справа - представимый). Есть ли способ разложить монаду продолжения? Ниже код моя попытка, которая не проверяет тип -- To form a -> (a -> k) -> k {-# LANGUAGE MultiParamTypeClasses, TypeOperators, InstanceSigs, TypeSynonymInstances #-} type (<-:) o i …

2
Вложенные состояния в Haskell
Я пытаюсь определить семейство государственных машин с несколько различными типами состояний. В частности, более «сложные» конечные автоматы имеют состояния, которые формируются путем объединения состояний более простых конечных автоматов. (Это похоже на объектно-ориентированную настройку, где объект имеет несколько атрибутов, которые также являются объектами.) Вот упрощенный пример того, чего я хочу достичь. …

1
Что я могу сделать с callCC, что нельзя сделать с помощью cont?
Я действительно очень борюсь с пониманием callCC. Я получаю силу от Continuations и использую концепцию в некоторых своих проектах для создания классных концепций. Но мне никогда не приходилось использовать что-то с большими возможностями, чем cont :: ((a->r)->r)-> Cont r a. После его использования становится понятным, почему они называют Cont Monad …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.