Публикации по теме 'monad-transformers'


Монада в функциональном программировании
Монада Это действительно отличная концепция, которая развилась за последние 25 лет и позволяет нам не обращать внимания на проблемы внутреннего состояния при каскадном преобразовании данных. Чтобы лучше понять это, давайте начнем с предположения, что у нас есть две функции, подобные этой: def addOne(x: Int): Int = x + 1 def square(x: Int): Int = x * x и мы хотим выполнить следующие преобразования: addOne(square(addOne(square(x)))) Легко ли это оценить? Да, конечно! Но что, если..

Вопросы по теме 'monad-transformers'

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

Монады в контексте преобразователя монад
У меня проблемы с цеплянием за монады и преобразователи монад. У меня есть следующий надуманный пример (не компилируемый): import Control.Monad import Control.Monad.Error import Control.Monad.Reader data State = State Int Int Int type Foo =...
701 просмотров

Смешивание монад в Haskell
Я пытаюсь работать с Ubigraph в Haskell, но я считаю, что моя проблема более общая. Я пытаюсь скомпилировать: import Graphics.Ubigraph import Control.Monad import System.Posix.Unistd main = do h <- initHubigraph...
1409 просмотров
schedule 14.03.2023

Haskell: не могу понять, как использовать стек преобразования монад
у меня есть тип type T s r a = StateT [s] (ListT (Reader r)) a Я хотел бы создать монадическое значение, которое дает каждое из текущих состояний states :: T a r a Но сегодня я чувствую себя глупо и не могу понять, как преобразовать...
242 просмотров
schedule 28.07.2023

Абстрагирование монадной композиции как преобразователя
Извините, если вопрос кажется несколько тривиальным ... это не для меня. Я с радостью составил следующую монаду: type SB i a = ReaderT ( AlgRO i ) (State ( AlgState i ) ) a что, в общем, хорошо управляемая монада. ReaderT - это...
549 просмотров

Как красиво оценить вложенные монады StateT и ErrorT?
У меня есть два объявления типа для управляющих структур на разных уровнях программы. Нижний — Agent , StateT с IO возможностями. Второй — еще один StateT с возможностями Agent , а третий ( Plan ) — ErrorT . type Agent = StateT...
445 просмотров
schedule 11.10.2022

Расширение монады ServerPartT с помощью средства чтения
Я пишу сервер Happstack, и у меня есть база данных MongoDB для подключения. Для этого я сделал функцию для создания пула соединений type MongoPool = Pool IOError Pipe withMongo :: (MongoPool -> IO a) -> IO () withMongo f = do pool...
161 просмотров

Поднимите значение ошибки до монадного преобразователя ErrorT
Я думаю, что мне не хватает базового понимания преобразователей монад, потому что я обнаружил, что пишу этот код: import Control.Monad.Identity import Control.Monad.Error liftError :: Either String Int -> ErrorT String Identity Int liftError x...
404 просмотров
schedule 13.10.2022

Требуется ли доступ к внутренней структуре монады для преобразователя монады?
Нужно ли иметь доступ к внутренней структуре монады, чтобы написать преобразователь монады? Например: Я хотел бы иметь GetT - преобразователь для монады Get из Data.Binary.Get, но этот модуль не раскрывает внутренности монады Get . Означает...
456 просмотров
schedule 02.03.2022

Передача дополнительного состояния через синтаксический анализатор в Scala
Я дам вам tl; dr вперед Я пытаюсь использовать преобразователь монад состояния в Scalaz 7 для передачи дополнительного состояния через синтаксический анализатор и У меня проблемы с выполнением чего-либо полезного, не написав много t m a ->...
1008 просмотров

Примеры аппликативных преобразователей Haskell
В вики на www.haskell.org рассказывается следующее об аппликативных преобразователях: Так где же прикладные трансформаторы? Ответ заключается в том, что нам не нужны специальные преобразователи для аппликативных функторов, поскольку их можно...
1966 просмотров
schedule 27.12.2023

Как объединить несколько нестандартных трансформаторов с ограничениями класса вместе в один стек?
Это будет длинно, потому что я не уверен, что начал это в правильном настроении, поэтому я собираюсь изложить свои мысли как можно яснее на каждом этапе пути. У меня есть два фрагмента кода, которые настолько минимальны, насколько я могу их сделать,...
282 просмотров
schedule 08.07.2022

Как поднять функцию преобразованной монаде в haskell?
Я знаю конструктор данных и функцию run ***, Я могу поднять любую функцию до конкретного экземпляра MonadTrans. Нравится, import Control.Monad.Trans import Control.Monad.Trans.Maybe import Control.Monad liftF :: (Monad m) => (a -> b)...
1143 просмотров
schedule 04.05.2022

Как избежать ступенчатости с Monad Transformers в scala?
У меня есть следующий код, который использует монаду Reader для настройки, а также имеет дело с IO[Option[String]] , и в итоге я получил код, который выполняет ступеньки в моей функции encode . Как я могу сформулировать монадный преобразователь...
1287 просмотров

Трансформаторы Monad и функция лифта
Почему нет необходимости использовать лифт для выполнения функции во внутренней среде преобразователя монад, кроме ввода-вывода? Я имею в виду, что если у меня StateT поверх WriterT и WriterT над ReaderT, почему я могу это сделать? tell $ {- any...
295 просмотров
schedule 21.04.2022

Как вернуть кортеж внутри EitherT
Я использую Scalaz 7 EitherT для создания for-computing, которые смешивают State и \ /. Все идет нормально; Я получаю то, что в основном: State[MyStateType, MyLeftType \/ MyRightType] и это позволяет мне создавать для понимания, у которых...
730 просмотров
schedule 08.02.2022

Как мне объединить монаду St и монаду State (или эквивалент)?
Я создаю код, чтобы понять, на самом деле решатель пасьянса. У меня есть простая реализация грубой силы, которая использует монаду состояния, на самом деле просто чтобы доказать, что я могу ее использовать (она только ведет счет каждого оцененного...
464 просмотров

Экземпляр MonadTransControl для FreeT
Можно ли реализовать MonadTransControl для FreeT ? Я начал со следующего, но застрял: instance (Functor f) => MonadTransControl (FreeT f) where newtype StT (FreeT f) r = FreeTStT r liftWith unlift = lift $ unlift $ error "Stuck...
263 просмотров
schedule 07.04.2022

Как создать MonadRandom (StateT PureMT m0)? (Хаскелл)
Я пытаюсь использовать MonadRandom из https://hackage.haskell.org/package/random-fu-0.2.6.0/docs/Data-Random.html#g:6 В частности, у меня есть функция с сигнатурой типа: randomN :: MonadRandom m => m Int и я хочу запустить его,...
119 просмотров

Аппликативные классы трансформаторов
Где классы трансформатора Applicative ? Я хотел использовать классы преобразователей для стека прикладных преобразователей в предыдущем ответе , но, похоже, их не существует. Пакет transformers и многие другие полны преобразователей, которые...
414 просмотров
schedule 07.10.2022