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

Лучше использовать монаду State или рекурсивно передавать состояние?
Я просто изучаю Haskell и пытаюсь найти наиболее идиоматический способ реализации алгоритма прямой видимости. Демонстрационный код, который я нашел, использует монаду состояния, но мне кажется проще (я только начинаю) передавать состояние...
1277 просмотров
schedule 02.07.2023

Сосуществование графического интерфейса StateT и WX
обычная программа wxHaskell выглядит так main = do run gui gui = do .... .... gui должен иметь тип IO a , run имеет тип IO a -> IO () , также в run есть некоторые подпрограммы инициализации. Я пытаюсь сделать...
155 просмотров
schedule 19.04.2022

ST Monad == запах кода?
Я работаю над реализацией алгоритма UCT в Haskell , который требует большого количества манипуляций с данными. Не вдаваясь в подробности, это алгоритм моделирования, в котором на каждом «шаге» листовой узел в дереве поиска выбирается на основе...
7923 просмотров
schedule 16.04.2022

Параллельные вычисления Haskell с использованием STArray
Я пытаюсь выполнять вычисления параллельно и записывать результаты в STArray. Я думаю, что этот код показывает, что я пытаюсь сделать. Однако я получаю ошибки компиляции. import Control.Monad import Control.Monad.ST import Control.Parallel...
845 просмотров

Как я могу построить монаду недетерминированного состояния в Haskell?
Я хочу построить монаду недетерминированного состояния в Haskell. Это позволит мне сгенерировать все элементы в моем пространстве поиска, используя созданное состояние, чтобы отсечь плохие местоположения. Предположим, у меня есть следующий...
516 просмотров
schedule 15.10.2022

Застрял в государственной монаде
Я хочу создать структуру графа, используя IntMap узлов и уникальных ключей. Эта тема хорошо освещена здесь и здесь . Я понимаю, как работает монада состояния, в основном оборачивая функцию состояния -> (val, state) в новый тип, чтобы мы могли...
476 просмотров
schedule 03.08.2023

Haskell: попытка обесценить простую монаду State get и put
Чтобы изучить детали монады State, я пытаюсь создать себе полную обессахаренную версию простой функции монады состояния, завершая мысль, начатую в Как на самом деле «получить» /получить/ начальное состояние в Haskell? , в ответе Дж. Купера. Пример...
401 просмотров
schedule 23.02.2022

Монада обратного состояния в OCaml
Как бы вы реализовали монаду обратного состояния в OCaml ? (Поскольку он сильно зависит от лени, я думаю, нужно использовать модуль Lazy из стандартной библиотеки).
334 просмотров

Как использовать постоянную монаду State со Spock?
Я только начинаю работать с haskell, и у меня возникают проблемы с базовым «эхо» REST-сервером. Spock выглядел как хорошая отправная точка для REST-сервера, и хотя я получил основы монады State, но у меня возникли проблемы с пониманием того, как...
490 просмотров

Как использовать линзы для поиска значения на карте, увеличения его или установки значения по умолчанию
При работе с состоянием под названием AppState я хочу отслеживать количество, скажем, экземпляров. Эти экземпляры имеют разные идентификаторы типа InstanceId . Поэтому мое состояние выглядит так import Control.Lens data AppState...
773 просмотров
schedule 09.06.2023

объединение StateT с InputT
Это продолжение этого вопроса . Я пытаюсь объединить shell из ответа @ErikR в свой цикл InputT . main :: IO [String] main = do c <- makeCounter execStateT (repl c) [] repl :: Counter -> StateT [String] IO () repl c = lift $...
301 просмотров

Почему я получаю сообщение об ошибке «Перекрывающиеся экземпляры», если один из них не совпадает?
Я пытаюсь разрешить встраивание монады состояния в мою свободную монаду; вот моя простая попытка: {-# language FlexibleInstances, MultiParamTypeClasses #-} module Main where import Control.Monad.Free import Control.Monad.State import...
84 просмотров
schedule 14.09.2023

Реальная жизнь и полезные примеры монад Reverse State
Монада Reverse State — действительно хороший и умопомрачительный пример выразительности языка Haskell и ленивых вычислений. Но понять эту монаду не так просто. Более того, очень трудно найти убедительный пример из реальной жизни того, что с...
1177 просмотров
schedule 27.04.2022

Скрытие вложенных преобразователей состояния с помощью newtype в haskell
Я не уверен, чего я хочу добиться, разумно или нет (пожалуйста, будьте любезны). Но у меня была идея для небольшой игры, в игре должно быть какое-то состояние, и состояние обновляется каким-то случайным компонентом (иначе было бы скучно). Поскольку...
288 просмотров

Haskell: государственная монада
Я пытаюсь изучить Хаскель. Я написал код, который использует глобальное состояние и может изменять его с помощью двух функций (т. е. change1 и change 2). Кроме того, я включил объектив, чтобы я тоже мог его изучить. Проблема в самой последней...
331 просмотров
schedule 15.08.2023

Поднятие значения в монаде State в Haskell
Я пишу генератор/решатель судоку на Haskell в качестве учебного упражнения. Моя функция solve принимает UArray , но возвращает State Int (UArray ...) , так что она также может вернуть максимальный уровень сложности, найденный при решении....
490 просмотров
schedule 25.09.2022

Генерация уникального значения в нотации Haskell
Чтобы сгенерировать ассемблерный код x86, я определил пользовательский тип с именем X86 : data X86 a = X86 { code :: String, counter :: Integer, value :: (X86 a -> a) } Этот тип используется в do-нотации, как показано ниже. Это упрощает...
393 просмотров
schedule 20.03.2023