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

Государственная монада, последовательности случайных чисел и монадический код
Я пытаюсь понять Монаду Состояния, и с этой целью я хотел написать монадический код, который генерировал бы последовательность случайных чисел с помощью Линейного Конгруэнтного Генератора (вероятно, не очень хорошо, но я намерен просто изучить Монаду...
2630 просмотров
schedule 14.04.2022

государственная монада haskell
Я хочу написать функцию для вычисления среднего значения с использованием State Monad в Haskell, это код, который я написал до сих пор. import Control.Monad.State type MyState = (Double,Double) media s (a,n)= ((a*n+s)/(n+1),n+1) getAverage::...
1225 просмотров
schedule 30.04.2023

Примеры монад состояния Scalaz
Я не видел много примеров монады состояния scalaz. Есть это пример , но его сложно понять, и в стеке есть только один другой вопрос переполнение кажется. Я собираюсь опубликовать несколько примеров, с которыми я играл, но я бы приветствовал...
13595 просмотров
schedule 06.12.2022

Управление состоянием - глава 3 SICP
Я работал над Структурой и интерпретацией компьютерных программ и выполнял упражнения на Haskell. Первые две главы были хороши (код на github ), но глава 3 заставила меня задуматься. Он начинается с обсуждения управления состоянием на примере...
925 просмотров
schedule 08.07.2023

Haskell: карта runST
У меня есть привязка для типа [ST s (Int, [Int])] , и я пытаюсь применить runST к каждому элементу, используя карту следующим образом: name :: [ST s (Int, [Int])] --Of Course there is a real value here map runST name Это дает мне сообщение...
1127 просмотров
schedule 07.04.2022

Монада состояния и шаблон стратегии
Я переделываю библиотеку, и меня не устраивает текущий шаблон проектирования. Этот вопрос касается использования шаблона стратегии в сочетании с Монада состояния У меня есть Filter . Все, что он делает в своей базовой реализации, это берет...
975 просмотров

В сборке cabal отсутствует Control.Monad.State, хотя mtl находится в зависимости от сборки
Я пытаюсь собрать свой собственный пакет клики, в котором один из модулей использует Control.Monad.State, но получаю следующую ошибку: executable/Example.hs:5:8: Could not find module `Control.Monad.State' It is a member of the hidden...
395 просмотров
schedule 19.07.2022

Как мне объединить монаду St и монаду State (или эквивалент)?
Я создаю код, чтобы понять, на самом деле решатель пасьянса. У меня есть простая реализация грубой силы, которая использует монаду состояния, на самом деле просто чтобы доказать, что я могу ее использовать (она только ведет счет каждого оцененного...
464 просмотров

Создание моей собственной монады State
Я понимаю, как использовать монады, но не совсем понимаю, как их создавать. Итак, я нахожусь в пути, чтобы воссоздать монаду State. Пока что я создал новый тип Toto (foo по-французски) и сделал его экземпляром Monad. Теперь я пытаюсь добавить к...
284 просмотров
schedule 05.10.2022

Как создать MonadRandom (StateT PureMT m0)? (Хаскелл)
Я пытаюсь использовать MonadRandom из https://hackage.haskell.org/package/random-fu-0.2.6.0/docs/Data-Random.html#g:6 В частности, у меня есть функция с сигнатурой типа: randomN :: MonadRandom m => m Int и я хочу запустить его,...
119 просмотров

извлечение имен из списка пар (имя, обработчик)
Вот простой пример использования haskeline с преобразователем StateT для создания цикла команд ввода с отслеживанием состояния: {-# LANGUAGE NoMonomorphismRestriction #-} {-# LANGUAGE FlexibleContexts #-} import Control.Monad.State.Strict...
46 просмотров
schedule 28.12.2023

Почему мы должны использовать монаду состояния вместо прямой передачи состояния?
Может ли кто-нибудь показать простой пример, где монада состояния может быть лучше, чем передача состояния напрямую? bar1 (Foo x) = Foo (x + 1) vs bar2 :: State Foo Foo bar2 = do modify (\(Foo x) -> Foo (x + 1)) get
2387 просмотров

Передайте линзу в функцию
Как правильно передать линзу в функцию с состоянием? Рассмотрим следующий код: {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE FlexibleContexts #-} import Control.Lens import Control.Monad.State data Game = Game { _armies :: [Army]...
184 просмотров
schedule 15.01.2024

Генерация случайных строк из пула строк с помощью QuickCheck
Рассмотрим задачу генерации строк из нашего набора возможных строк таким образом, чтобы однажды выбранная строка не могла быть повторена снова. Для этой задачи я хотел бы использовать функции Gen QuickCheck . Если я посмотрю на тип функции,...
272 просмотров

Преобразователи монад: реализация стековой машины с помощью MaybeT (State Stack)
Я пытаюсь реализовать монадный преобразователь Maybe-State и использовать его для реализации простой стековой машины. Определения монады состояния и, возможно, должны быть правильными. Теперь я пытаюсь реализовать поп: pop :: MaybeT (State...
306 просмотров

сообщение об ошибке компилятора при использовании монады State для мемоизации
У меня есть проблема сделать рабочую версию задачи проекта Эйлера 31 с использованием признака состояния (вдохновленный scalaz) Во-первых, у меня есть решение с изменяемым HashMap для мемоизации. Это работает, но я хотел бы использовать монаду...
49 просмотров
schedule 13.09.2022

Путаница с StateT, State и MonadState
я совершенно запутался между newtype StateT s m a = StateT {runStateT :: s -> m (a, s)} а также type State s = StateT s Identity а также class Monad m => MonadState s m | m -> s
4621 просмотров
schedule 22.08.2022

Для аппликативного экземпляра требуется 1 И 0 аргументов
Я прошел через «Изучай себя на Haskell» и пытаюсь реализовать задачу «Хитроу в Лондон» [1] монадическим способом (вместо сгибов или явных рекурсий). [1] http://learnyouahaskell.com/functionally-solving-problems#heathrow-to-london Мой вопрос...
110 просмотров
schedule 12.07.2022

Haskell - Как мне запустить список монад состояния?
Я новичок в Haskell, и у меня возникли проблемы с монадой State. Я создал следующие типы. Stat a для него созданы моноид, функтор, аппликатив и экземпляр монады. «Главный» тип в моей программе — это существа, и у него много аргументов:...
509 просмотров

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