Вопросы по теме '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 просмотров
schedule
14.08.2023
В сборке 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 просмотров
schedule
24.05.2022
Создание моей собственной монады 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 просмотров
schedule
14.05.2023
извлечение имен из списка пар (имя, обработчик)
Вот простой пример использования 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 просмотров
schedule
05.06.2023
Передайте линзу в функцию
Как правильно передать линзу в функцию с состоянием? Рассмотрим следующий код:
{-# 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 просмотров
schedule
26.03.2022
Преобразователи монад: реализация стековой машины с помощью MaybeT (State Stack)
Я пытаюсь реализовать монадный преобразователь Maybe-State и использовать его для реализации простой стековой машины. Определения монады состояния и, возможно, должны быть правильными. Теперь я пытаюсь реализовать поп:
pop :: MaybeT (State...
306 просмотров
schedule
20.01.2024
сообщение об ошибке компилятора при использовании монады 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 просмотров
schedule
28.11.2022
Реализация flatMap() для перехода состояния
Упражнение 6.8, Кьюзано и Бьярнасон, Функциональное программирование в Scala , с. 87 спрашивает, как можно реализовать flatMap() для следующего трейта:
trait RNG {
def nextInt: (Int, RNG)
}
type Rand[+A] = RNG => (A, RNG)
Ключ ответа...
268 просмотров
schedule
03.09.2022