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

Кто-нибудь когда-нибудь сталкивался с Трансформатором Монад в дикой природе?
В моей сфере деятельности - ИТ-отделы бэк-офиса для финансового учреждения - очень часто программный компонент имеет глобальную конфигурацию, регистрирует свой прогресс, имеет какое-то короткое замыкание обработки ошибок / вычислений ... можно хорошо...
9114 просмотров

Что такое преобразователи монад в Haskell в категорическом выражении?
Будучи студентом математики, первое, что я сделал, когда узнал о монадах в Haskell, - это проверил, действительно ли они являются монадами в том смысле, о котором я знал. Но потом я узнал о преобразователях монад, которые, похоже, не совсем изучаются...
1571 просмотров

Трансформатор монад для понимания
Рассмотреть возможность: def xs(c: String): Option[List[Long]] = ... val ys: Stream[Long] = ... Теперь я бы написал метод примерно так: def method(oc: Option[String]): Option[Long] = for { c <- oc list <- xs(c) } yield{...
571 просмотров

Результат монады внутри преобразователя монад
Это мое первое знакомство с Monad Transformers, поэтому ответ может быть очевиден. Допустим, я нахожусь внутри блока do типа StateT MyMonad MyType, я хочу, чтобы другая функция того же типа изменяла состояние и возвращала значение типа MyMonad...
386 просмотров
schedule 18.04.2022

Обновление внешней монады только в преобразователе монад
У меня есть монада для вычислений, которые могут завершиться ошибкой и вести журнал: f1 :: WriterT [String] (Either String) a У меня есть функция, которая не выйдет из строя, но ведет журнал: f2 :: Writer [String] b Каков наилучший...
217 просмотров
schedule 25.12.2023

Интерпретатор небольшого императивного языка
Привет, я пишу интерпретатор C-подобного, статически типизированного языка в Haskell. Я хочу выполнить проверку типов перед выполнением кода, но у меня с этим проблемы. Прежде всего, ниже приведены некоторые определения типов из моего абстрактного...
593 просмотров

Могу ли я использовать преобразователи монад, чтобы упростить эту композицию?
предположим, у меня есть type VS[A] = Validation[String, A] val v: VS[Option[A]] val f: A => VS[B] Я хочу получить результат типа VS[Option[B]] , но если v является Success(None) , результат также должен быть Success(None) . Вот...
1168 просмотров

Scala упрощает вложенные монады
У меня есть код, написанный в Lift. По сути, это вложенный Box (монада, аналогичная Option). Я хотел бы немного упростить его, если это возможно. Желательно добавить параметр типа, чтобы его можно было легко изменить на строку или двойное значение,...
776 просмотров
schedule 09.06.2023

Создание недетерминированного преобразователя монад в Haskell
Я хотел бы построить недетерминированный преобразователь монады в Haskell, который, как мне кажется, ведет себя иначе, чем ListT и альтернативный ListT, предложенный на http://www.haskell.org/haskellwiki/ListT_done_right . Первый из них связывает...
400 просмотров

Ошибки компиляции MaybeT
Ошибка: maybet.hs:8:14: Couldn't match expected type `MaybeT m0 t0' with actual type `Maybe a0' In the return type of a call of `M.lookup' In a stmt of a 'do' expression: m <- M.lookup "a" a In the second...
128 просмотров
schedule 25.11.2022

Scala: неверный предполагаемый тип для Option, созданного с помощью преобразователя монад StateT
Я немного знаком с преобразователями монад Haskell, но новичок в Scalaz (версия 7). Я сделал (как мне показалось) простой перевод следующего кода на Haskell: import Control.Monad.State type Pass a = StateT String Maybe a monadTest :: Pass...
348 просмотров

Happstack получает новый StdGen для каждого запроса?
У меня есть простое небольшое приложение Happstack, которое показывает форму с полем электронной почты и полем случайного вопроса для борьбы со спамом. Чтобы получить случайное число, я использую getStdGen в своей функции main и передаю его своей...
83 просмотров

Haskell GTK и Monad Transformers
Я создаю приложение с пользовательским интерфейсом, и мне нужно запустить код, который находится в StateT и ReaderT поверх IO , я использую Graphics.UI.Gtk для пользовательского интерфейса, и у меня есть следующая проблема: Мне нужно, чтобы...
151 просмотров

MonadBaseControl: как поднять ThreadGroup
В пакете Thread в модуле _ 1_ есть функция forkIO : forkIO :: ThreadGroup -> IO α -> IO (ThreadId, IO (Result α)) Я бы хотел поднять его с помощью MonadBaseControl из monad-control . Вот моя попытка: fork :: (MonadBase IO...
223 просмотров
schedule 19.02.2022

List[OptionT[Future, Int]] в OptionT[Future, List[A]]
Я создаю List из Int , используя асинхронное вычисление для извлечения элемента: (1 to n).map(anAsyncThingy).toList где anAsyncThingy возвращает OptionT[Future, Int] Следовательно, результат имеет тип List[OptionT[Future, Int]]...
237 просмотров
schedule 12.10.2023

привязать монадическое значение (m2 a) внутри некоторой другой монады m1
Сегодня, работая в Coding Dojo, я попробовал следующее. example :: IO () example = do input <- getLine parsed <- parseOnly parser input ... где parseOnly :: Parser a -> Either String a (из attoparsec ),...
341 просмотров
schedule 20.09.2022

объединение StateT с InputT
Это продолжение этого вопроса . Я пытаюсь объединить shell из ответа @ErikR в свой цикл InputT . main :: IO [String] main = do c <- makeCounter execStateT (repl c) [] repl :: Counter -> StateT [String] IO () repl c = lift $...
301 просмотров

Преобразователи монад в Scala
Я пробовал простые трансформеры монад, где у меня есть понимание, включающее M[F[A]] , где M и F - монады. Как я могу заставить M[F[A]] и M[S[A]] работать вместе в for comp, если S это другая монада? Например: val a:...
193 просмотров
schedule 28.10.2022

Невозможно создать производный экземпляр монадного преобразователя
У меня есть следующее newtype : {-# LANGUAGE GeneralizedNewtypeDeriving #-} newtype Wrap m a = Wrap {runWrap :: m a} deriving (Functor, Applicative, Monad, MonadTrans) Я пытаюсь автоматически вывести MonadTrans , но получаю следующую...
547 просмотров
schedule 10.06.2024

MonadTransformer для проверки типа завершенного действия.
Преамбула Это один из тех вопросов, когда я думаю, что кто-то уже решил мою проблему, но я не знаю, где искать. Вопрос Я ищу MonadTransformer, который несет в себе идею быть полным или неполным таким образом, что действие стека монады не...
66 просмотров
schedule 08.09.2022