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

Объединение монад StateT и State
Допустим, у меня есть функция f :: State [Int] Int и функция: g :: StateT [Int] IO Int Я хочу использовать f в g и передавать состояние между ними. Есть ли библиотечная функция для StateT (return . runState f) ? Или вообще,...
1926 просмотров

Сложная структура государственной монады
Я все еще новичок в Haskell, и я думаю, что сейчас я над головой. У меня есть код, который выглядит следующим образом. data World = World { intStack :: [Int], boolStack :: [Bool] } deriving Show instance IntStack World where getIntStack =...
476 просмотров
schedule 21.09.2022

Различные взаимодействующие уровни состояния в haskell
Я эмулирую 4-битный микропроцессор. Мне нужно отслеживать регистры, память и текущий вывод (бонусные баллы за наличие счетчика циклов выборки-выполнения). Мне удалось сделать это без монад, но это кажется грязным, когда я явно пропускаю столько...
491 просмотров

Путаница в коде State Monad в Learn you a Haskell
Я пытаюсь разобраться в Haskell с помощью интерактивной книги Изучить Haskell для большого блага . Насколько мне известно, я был в состоянии понять монады до тех пор, пока не попал в главу, представляющую Государственная монада . Однако...
4318 просмотров
schedule 30.10.2023

Объединение монад в Haskell
Я пытаюсь написать игрока Spider Solitaire в качестве учебного упражнения на Haskell. Моя функция main будет вызывать функцию playGame один раз для каждой игры (используя mapM ), передавая номер игры и генератор случайных чисел ( StdGen )....
2870 просмотров
schedule 02.09.2022

Идентификаторы из State Monad в Haskell [дубликаты]
Возможный дубликат: Создание уникальных меток в Haskell У меня есть тип данных Person и некоторые входные данные, из которых я создам Persons. Я бы хотел, чтобы у каждого человека был свой идентификатор (скажем, целые числа [0..])....
959 просмотров

Как обрабатывать вложенную структуру при обходе с монадой состояний
У меня есть вложенные структуры, которые я конвертирую в XML с помощью монады состояния scalaz. Это хорошо работает, пока мне не придется иметь дело с многоуровневыми вложенными структурами. Вот упрощенный пример, похожий на то, что я делаю....
694 просмотров
schedule 24.03.2024

Как здесь взаимодействуют bind, put и return?
Учитывая следующий код rollDie :: GeneratorState Int rollDie = do generator <- get let (value, newGenerator) = randomR (1,6) generator put newGenerator return value Я знаю, что могу перевести это как:...
104 просмотров
schedule 26.11.2022

State Monad с несколькими значениями состояния
Рассмотрим следующее: do x1 <- new 2 set x1 3 x2 <- get x1 y1 <- new 10 set y1 20 y2 <- get y1 return (x2 + y2) Я хочу, чтобы это привело к 23 . Есть ли способ реализовать что-то подобное на чистом Haskell, и если...
1522 просмотров
schedule 04.12.2022

Как бессрочно закрепить состояние в одной и той же монаде State в Haskell?
Начав с Haskell и остановившись на State Monad ... Итак, я пытаюсь разобраться с Монадой состояний в Haskell, и чтобы понять ее, я пишу код для генерации последовательностей PRBS. Для заинтересованных людей это описано в статье «Псевдослучайные...
182 просмотров
schedule 04.09.2022

Как сохранить информацию при сбое?
Я пишу код, который использует монадный преобразователь StateT для отслеживания некоторой информации о состоянии (логирование и т. д.). Монада, которую я передаю StateT , очень проста: data CheckerError a = Bad {errorMessage :: Log} | Good...
139 просмотров

StateT с монадой Q из шаблона haskell
Я хотел бы создать функцию, которая принимает некоторые объявления типа Dec (которые я получаю от [d| ... |]) и модифицирую их. Модификации будут зависеть от предыдущих объявлений, поэтому я хотел бы иметь возможность хранить их в карте, скрытой в...
296 просмотров

Пользовательский экземпляр MonadState
Когда я делаю: cabal sandbox init cabal update cabal install hakaru cabal repl λ> :l simple.hs λ> sample test [] с simple.hs , содержащим: {-# LANGUAGE MultiParamTypeClasses #-} import Language.Hakaru.ImportanceSampler import...
362 просмотров

Монада состояния haskell в функции и аргументе
У меня есть вопрос относительно использования монады состояния, если функция и ее аргумент, который также является функцией, изменяют состояние. вот краткая информация: функция foo изменяет состояние функция bar изменяет состояние Я хочу...
166 просмотров
schedule 02.08.2022

Как работает этот код монады State?
Этот код взят из этой статьи . Я был в состоянии следовать за ним до этой части. module Test where type State = Int data ST a = S (State -> (a, State)) apply :: ST a -> State -> (a,State) apply (S f) x = f x fresh = S (\n...
304 просмотров
schedule 16.05.2022

Как применить вычисление с сохранением состояния к списку?
Давайте представим фиктивное подмножество Brainf*ck: + увеличивает счетчик - уменьшает счетчик Простая программа: program = "++++--" -- should evaluate to 2 И функция оценки состояния: eval :: Char -> State Int Char eval...
133 просмотров
schedule 14.07.2023

Слои состояния с помощью Either в скалязе
В Интеграция состояния с Either (слайд 88), учитывая шаблон State , расположенный под Either , есть ли рекомендуемый подход для добавления другого типа состояния, например, ведения журнала через что-то вроде Writer ? Кажется, что новое...
503 просмотров

State Monad для сохранения доски в игре
У меня есть модуль Game , который определяет метод play, подобный этому play :: Board -> Move - > Board . Я хочу использовать State Monad в другом модуле с именем Playing , который импортирует модуль Game , чтобы я мог вызывать play...
731 просмотров
schedule 17.04.2022

Как `get` работает в версии CPS монады State?
Я пытаюсь понять продолжение в целом, следуя этому руководству . Однако мне трудно понять следующий пример в разделе 2.10: # let get () = shift (fun k -> fun state -> k state state) ;; get : unit => ’a = <fun> state...
250 просмотров

Функциональный поиск в ширину в Scala с монадой состояния
Я пытаюсь реализовать функциональный поиск в ширину в Scala для вычисления расстояний между данным узлом и всеми остальными узлами в невзвешенном графе. Я использовал для этого State Monad с подписью: - case class State[S,A](run:S => (A,S))...
655 просмотров