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

Стек преобразователя Haskell Monad и подписи типов
Я пытаюсь создать стек преобразователей монад, и у меня возникают проблемы с получением правильных сигнатур типов для моих функций. (Я все еще новичок в Haskell) Стек объединяет несколько преобразователей StateT, поскольку у меня есть несколько...
3221 просмотров

Советы по более элегантному коду с монадами?
Наконец-то я понял, как использовать монады (не знаю, понимаю ли я их...), но мой код никогда не бывает очень элегантным. Я предполагаю, что это из-за отсутствия понимания того, как все эти функции на Control.Monad могут реально помочь. Поэтому я...
1061 просмотров

Быстрое обновление большого состояния в Haskell
Для моей библиотеки векторной графики на Haskell я должен носить с собой довольно большое состояние: параметры обводки линии, цвета, путь отсечения и т. д. Я знаю два способа сделать это. Цитируя комментарий из Haskell-cafe : "Я бы предлагаю вам...
2601 просмотров
schedule 31.01.2023

Монада состояния в OCaml
Я пытался реализовать монаду состояния в OCaml (в качестве упражнения). Моя реализация выглядит так: module type MONAD_BUILDER = sig type 'a t val return : 'a -> 'a t val bind : 'a t -> ('a -> 'b t) -> 'b t end;; module...
2107 просмотров

scalaz List[StateT].sequence — не удалось найти неявное значение для параметра n: scalaz.Applicative
Я пытаюсь понять, как использовать StateT для объединения двух преобразователей состояния State на основе комментария к моему Примеры монад состояния Scalaz answer. Кажется, я очень близок, но у меня возникла проблема при попытке применить...
1359 просмотров

haskell - функция состояния монады получить?
один вопрос в соответствии с функцией get государственной монады: Если я сбегу runState получить 1 Я получил результат (1,1) и это нормально для меня, потому что функция get устанавливает значение результата в состояние, и в...
2467 просмотров
schedule 07.04.2023

что такое правильное понимание монады или последовательности как для отображения, так и для переноса состояния?
Я пишу интерпретатор языка программирования. Мне нужна правильная идиома кода как для оценки последовательности выражений, чтобы получить последовательность их значений, так и для распространения состояния от одного оценщика к другому по мере...
2105 просмотров
schedule 11.03.2023

Haskell: Как работает put MonadState?
http://hackage.haskell.org/packages/archive/mtl/1.1.0.2/doc/html/src/Control-Monad-State-Lazy.html instance (Monad m) => MonadState s (StateT s m) where get = StateT $ \s -> return (s, s) put s = StateT $ \_ -> return ((), s)...
188 просмотров
schedule 23.04.2022

Как реализовать класс MonadState без использования синтаксиса записи?
Мне трудно понять MonadState . Причина, возможно, в том, что большинство примеров смешиваются с синтаксисом записей в их структуре данных. Итак, я попытался реализовать MonadState без использования синтаксиса записи. Следующий код,...
799 просмотров

Монада состояния Scala для понимания
Я изучаю превосходную лекцию Майкла Пилквиста по монаде состояния, здесь . Я застреваю на 54 минуте с двумя вопросами. Если ofs - это Option[FollowerStats] , что такое оператор ? ? Я не могу найти тернарный оператор в Option в Scala...
1814 просмотров
schedule 04.08.2023

Haskell State Monad и Binary не выводят все
Я играл с простой двоичной кодировкой, и, похоже, по большей части она работала правильно, пока я не добавил монаду состояния. План состоял в том, чтобы использовать состояние для хранения таблицы поиска того, что я записал в байтовую строку до сих...
134 просмотров
schedule 23.11.2022

Использование Maybe с State Monad
Я пытаюсь реализовать очередь FIFO в Haskell с помощью операций push / pop / peek, и это то, что я получил до сих пор. data Queue a = Queue { inbox :: [a], outbox :: [a] } deriving (Eq, Show) push :: a -> Queue a -> Queue a push e...
831 просмотров

Обоснование использования ››
В главе Real World Haskell они дают обоснование (>>) следующим образом: Мы используем эту функцию, когда хотим выполнить действия в определенном порядке, но не заботимся о результате. Затем они приводят хороший пример,...
174 просмотров
schedule 02.03.2023

Государственная монада — циклы while
Этот вопрос был вдохновлен этим вопросом . Я понимаю пример ( ListBuilder ), но мне не удалось создать цикл while для моей монады состояния. Что мне непонятно, так это как bind тело цикла while loop, когда итерации следуют одна за другой....
499 просмотров
schedule 23.04.2023

Объем государственной монады
Я пытаюсь понять, что происходит в следующем коде, код работает правильно, но я пытаюсь понять почему . import Control.Monad.State import System.IO import System.Environment echoArgs :: [String] -> State Int [String] echoArgs x = loopArgs x...
237 просмотров
schedule 22.05.2022

Как использовать монаду Supply для создания функции, генерирующей глобально уникальные имена?
Задний план: Я делаю проект перевода кода, который требует от меня создания имен переменных. Ни одно из имен, которые я генерирую, не должно дублировать друг друга. Я действительно расстроен, так как это было бы глупо просто и элегантно с...
579 просмотров

Найдите слово в двумерном лабиринте, используя монаду State
Если у нас есть доска 4x4 с символами (которые могут повторяться) и какое-то случайное слово, нам нужно найти, можно ли найти это слово на доске. Теперь эту проблему довольно легко решить, не используя никаких причудливых вещей. Но с точки зрения...
111 просмотров
schedule 21.07.2022

Лучшая практика с Monad
Я хотел бы знать, что можно считать лучшей практикой в ​​отношении монады State . Я также открыт для любых других предложений. У меня есть бинарный файл для разбора. Он содержит разные заголовки, которые необходимо проанализировать, чтобы иметь...
258 просмотров
schedule 15.04.2023

Обобщенное получение Newtype
Haskell может получить экземпляр для MonadState s в T1 ниже, но не в T2 , который, тем не менее, является очень похожим типом. Каким образом мне следует изменить код для T2 , чтобы экземпляр для MonadState s мог быть получен автоматически?...
2935 просмотров
schedule 20.06.2022

Построение минимального примера Haskell для обработки ошибок в монаде State
Я скручиваю свой мозг в узлы, пытаясь понять, как соединить монаду State с Maybe . Давайте начнем с конкретного (и намеренно тривиального/ненужного) примера, в котором мы используем монаду State для нахождения суммы списка чисел: import...
207 просмотров