Описание тега state-monad

Монада, позволяющая прикреплять информацию о состоянии к вычислениям
1 ответ

Добавление монады состояний в базу данных haskell kv

Играя со старым кодом, обзор здесь простой-дб. и застрял, когда я добавил State Monad в него для дальнейшего сокращения кода. Я почему-то чувствую, что делаю это неправильно. repl cmd = getCmd >>= execCmd cmd >>= displayResult >>= …
02 июн '16 в 15:44
2 ответа

Государственная монада Haskell в отслеживании движения в двух измерениях

Я пытаюсь проследить за движением объекта в двухмерной плоскости, которому был дан список команд "вперед, влево или вправо". До сих пор у меня есть функции, которые принимают компоненты состояния объекта (направление, положение и ходы) и возвращают …
10 июн '16 в 13:07
1 ответ

Реализация flatMap() для перехода между состояниями

Упражнение 6.8, Кьюзано и Бьярнасон, Функциональное программирование в Scala, с. 87 спрашивает, как можно реализовать flatMap() для следующей черты: trait RNG { def nextInt: (Int, RNG) } type Rand[+A] = RNG => (A, RNG) Ключ ответа дает следующее …
3 ответа

Скаладская государственная монада, примеры

Я не видел много примеров монады состояния скалаза. Этот пример есть, но его трудно понять, и, кажется, есть только один вопрос о переполнении стека. Я собираюсь опубликовать несколько примеров, с которыми я играл, но я бы приветствовал дополнительн…
12 окт '11 в 02:56
5 ответов

ST Monad == Кодовый запах?

Я работаю над реализацией алгоритма UCT в Haskell, который требует значительного объема данных. Не вдаваясь в подробности, это алгоритм моделирования, в котором на каждом "шаге" выбирается листовой узел в дереве поиска на основе некоторых статистиче…
24 окт '11 в 19:05
4 ответа

Я что-то упустил из фундаментальной монады? Зачем хранить состояние и ввод отдельно?

Почему наши функции должны принимать состояние и вход, а не просто состояние, которое включает в себя вход (или вход, который включает в себя состояние?). Я предполагаю, что вы, возможно, захотите применить разные входные данные с одним и тем же сос…
26 фев '14 в 06:44
0 ответов

В сборнике Кабала отсутствует Control.Monad.State, хотя MTL находится в зависимости от сборки

Я пытаюсь создать свой собственный пакет cabal, где один из модулей использует Control.Monad.State, но я получаю следующую ошибку: executable/Example.hs:5:8: Could not find module `Control.Monad.State' It is a member of the hidden package `mtl-2.1.2…
04 фев '14 в 10:27
3 ответа

Используйте две монады без трансформатора

Чтобы понять, как использовать монадные преобразователи, я написал следующий код без такового. Он читает стандартный ввод строка за строкой и отображает каждую строку в обратном порядке, пока не встретится пустая строка. Он также считает строки, исп…
25 июл '15 в 16:57
1 ответ

Haskell - Использование State с Альтернативой

У меня есть тип данных, который выглядит следующим образом: type Parser a = ExceptT ParseError (State [Token]) a А также функции манипулирования состоянием: consumeToken :: Parser Token consumeToken = do toks <- lift get if null toks then throwE …
03 апр '18 в 09:04
0 ответов

Отчеты об ошибках парсера для получения правильных экземпляров

Я пытаюсь построить анализатор сообщений об ошибках в haskell. В настоящее время я смотрю на учебник, и это то, что я до сих пор. type Position = (Int, Int) type Err = (String, Position) newtype Parser1 a = Parser1 {parse1 :: StateT String (StateT P…
1 ответ

Как связать, положить и вернуть взаимодействовать здесь?

Учитывая следующий код rollDie :: GeneratorState Int rollDie = do generator <- get let (value, newGenerator) = randomR (1,6) generator put newGenerator return value Я знаю, что могу перевести это как: rollDie2 :: GeneratorState Int rollDie2 = get…
11 июл '13 в 16:22
4 ответа

Haskell: Как написать интерактивный переводчик поверх государственной монады?

Мы работаем над модельной файловой системой, которая использует монаду состояний внутри. У нас есть класс типов с такими операциями: class Monad m => FS m where isDirectory :: Path -> m Bool children :: Path -> m [Path] ... Мы работаем над …
2 ответа

Где утечка памяти при использовании StateT s IO a?

Намерение: небольшое приложение для изучения Haskell: загружает статью википедии, затем загружает все статьи, связанные с ней, затем загружает все статьи, связанные с ними, и так далее... до тех пор, пока не будет достигнута указанная глубина рекурс…
24 июн '18 в 20:41
1 ответ

Как я могу использовать монаду Supply для создания функции, которая генерирует глобально уникальные имена?

Фон: Я делаю проект перевода кода, который требует от меня генерировать имена переменных. Ни одно из имен, которые я генерирую, не должно дублировать друг друга. Я очень расстроен, потому что это было бы глупо просто и элегантно с функцией генератор…
1 ответ

Создание моей собственной государственной монады

Я понимаю, как использовать монады, но я не совсем понимаю, как их создать. Так что я нахожусь в путешествии, чтобы воссоздать государственную монаду. До сих пор я создал новый тип Toto (foo по-французски) и сделал его экземпляром Monad. Сейчас я пы…
30 мар '14 в 10:02
1 ответ

Продолжайте получать (используйте FlexibleContexts, чтобы разрешить это) Ошибка в простой функции Haskell

Я просто играю с монадами на Haskell и получаю сообщение об ошибке, которое не могу исправить. Мой сегмент кода использует состояние Monad, чтобы сложить вместе первые два символа из строки и вернуть их как часть состояния. Моя строка "put" продолжа…
06 апр '17 в 01:41
2 ответа

Haskell: положить в государственную монаду, кажется, исключено

Я пишу программу для раздачи пиццы людям; каждый человек получит одну пиццу, в идеале своего любимого типа, если на складе не закончится, и в этом случае ему дадут рекурсивный следующий тип. Мой подход состоит в том, чтобы вычислить ((User, Pizza), …
15 апр '15 в 18:16
2 ответа

Понимание StateMonad

Я новичок в Haskell и пытаюсь понять это определение StateMonad, в частности, операцию связывания. Это взято из Обобщения Монад до Стрелок стр. 4. instance Monad (StateMonad s) where return a = SM (\s -> (a, s)) x >>= f = SM (\s -> let S…
08 авг '16 в 05:29
2 ответа

Монад фасад для MonadState в Haskell

Предыстория: я создаю игру с монадой с сохранением состояния для чтения и записи изменений в глобальном состоянии игры. Я хотел бы разделить мою игру на компоненты, такие как "Персонажи", предоставляя доменным способом взаимодействия этих компоненто…
26 окт '15 в 00:31
1 ответ

Haskell - Как бы я управлял списком государственных монад?

Я немного новичок в Хаскеле, и у меня возникли проблемы с государственной монадой. Я создал следующие типы.Stat a для него создан моноид, функтор, аппликативный и монадный экземпляры. "Основной" тип в моей программе - существо, и у него много аргуме…
26 май '17 в 03:58