Вопросы по теме 'state-monad'
Объединение монад StateT и State
Допустим, у меня есть функция
f :: State [Int] Int
и функция:
g :: StateT [Int] IO Int
Я хочу использовать f в g и передавать состояние между ними. Есть ли библиотечная функция для StateT (return . runState f) ? Или вообще,...
1926 просмотров
schedule
12.07.2022
Сложная структура государственной монады
Я все еще новичок в Haskell, и я думаю, что сейчас я над головой. У меня есть код, который выглядит следующим образом.
data World = World {
intStack :: [Int],
boolStack :: [Bool]
} deriving Show
instance IntStack World where
getIntStack =...
476 просмотров
schedule
21.09.2022
Различные взаимодействующие уровни состояния в haskell
Я эмулирую 4-битный микропроцессор. Мне нужно отслеживать регистры, память и текущий вывод (бонусные баллы за наличие счетчика циклов выборки-выполнения). Мне удалось сделать это без монад, но это кажется грязным, когда я явно пропускаю столько...
491 просмотров
schedule
04.06.2023
Путаница в коде 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 просмотров
schedule
24.05.2022
Как обрабатывать вложенную структуру при обходе с монадой состояний
У меня есть вложенные структуры, которые я конвертирую в 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 просмотров
schedule
13.07.2023
StateT с монадой Q из шаблона haskell
Я хотел бы создать функцию, которая принимает некоторые объявления типа Dec (которые я получаю от [d| ... |]) и модифицирую их. Модификации будут зависеть от предыдущих объявлений, поэтому я хотел бы иметь возможность хранить их в карте, скрытой в...
296 просмотров
schedule
07.06.2023
Пользовательский экземпляр 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 просмотров
schedule
05.08.2022
Монада состояния 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 просмотров
schedule
24.05.2022
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 просмотров
schedule
27.07.2023
Функциональный поиск в ширину в Scala с монадой состояния
Я пытаюсь реализовать функциональный поиск в ширину в Scala для вычисления расстояний между данным узлом и всеми остальными узлами в невзвешенном графе. Я использовал для этого State Monad с подписью: -
case class State[S,A](run:S => (A,S))...
655 просмотров
schedule
06.07.2023