Вопросы по теме 'monad-transformers'
Кто-нибудь когда-нибудь сталкивался с Трансформатором Монад в дикой природе?
В моей сфере деятельности - ИТ-отделы бэк-офиса для финансового учреждения - очень часто программный компонент имеет глобальную конфигурацию, регистрирует свой прогресс, имеет какое-то короткое замыкание обработки ошибок / вычислений ... можно хорошо...
9114 просмотров
schedule
29.11.2023
Что такое преобразователи монад в Haskell в категорическом выражении?
Будучи студентом математики, первое, что я сделал, когда узнал о монадах в Haskell, - это проверил, действительно ли они являются монадами в том смысле, о котором я знал. Но потом я узнал о преобразователях монад, которые, похоже, не совсем изучаются...
1571 просмотров
schedule
06.11.2023
Трансформатор монад для понимания
Рассмотреть возможность:
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 просмотров
schedule
11.08.2023
Результат монады внутри преобразователя монад
Это мое первое знакомство с 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 просмотров
schedule
25.07.2022
Могу ли я использовать преобразователи монад, чтобы упростить эту композицию?
предположим, у меня есть
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 просмотров
schedule
18.10.2023
Scala упрощает вложенные монады
У меня есть код, написанный в Lift. По сути, это вложенный Box (монада, аналогичная Option). Я хотел бы немного упростить его, если это возможно. Желательно добавить параметр типа, чтобы его можно было легко изменить на строку или двойное значение,...
776 просмотров
schedule
09.06.2023
Создание недетерминированного преобразователя монад в Haskell
Я хотел бы построить недетерминированный преобразователь монады в Haskell, который, как мне кажется, ведет себя иначе, чем ListT и альтернативный ListT, предложенный на http://www.haskell.org/haskellwiki/ListT_done_right . Первый из них связывает...
400 просмотров
schedule
02.10.2023
Ошибки компиляции 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 просмотров
schedule
23.07.2022
Happstack получает новый StdGen для каждого запроса?
У меня есть простое небольшое приложение Happstack, которое показывает форму с полем электронной почты и полем случайного вопроса для борьбы со спамом. Чтобы получить случайное число, я использую getStdGen в своей функции main и передаю его своей...
83 просмотров
schedule
16.10.2023
Haskell GTK и Monad Transformers
Я создаю приложение с пользовательским интерфейсом, и мне нужно запустить код, который находится в StateT и ReaderT поверх IO , я использую Graphics.UI.Gtk для пользовательского интерфейса, и у меня есть следующая проблема:
Мне нужно, чтобы...
151 просмотров
schedule
16.06.2023
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 просмотров
schedule
15.07.2023
Преобразователи монад в 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