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

Есть ли доказательство того, что runST действительно чист?
ST-монада , изначально разработанный Launchbury and Peyton Jones , позволяет программистам Haskell писать императивный код (с изменяемым переменные, массивы и т. д.) при получении чистого интерфейса для этого кода. Более конкретно, полиморфный...
493 просмотров
schedule 09.11.2021

Использование Monad/ST для непараллельной передачи сообщений в изменяемый граф
Я пытаюсь разработать структуру данных для следующей ситуации. Структура графика Я планирую иметь граф узлов с невзвешенными направленными ребрами: Graph = [Node] Каждый узел имеет: Некоторое внутреннее (постоянное) состояние TBD...
122 просмотров
schedule 21.03.2022

Что происходит в подписи этого типа? (Модификаторы Vector.Mutable в Haskell)
Изменяемые векторы в Haskell имеют три мутатора на уровне элемента: read :: PrimMonad m => MVector (PrimState m) a -> Int -> m a write :: PrimMonad m => MVector (PrimState m) a -> Int -> a -> m () swap :: PrimMonad m =>...
900 просмотров

Смешивание IO с ST Monad - переменная типа `s2' вышла бы из области видимости
Я решил упростить свой код, чтобы увидеть, какие условия вызывают ошибку. Я начинаю с простой вложенной «s», похожей на ST s (STArray s x y) , вот так: {-# LANGUAGE RankNTypes #-} import Control.Monad.ST import Control.Applicative data Foo s =...
232 просмотров
schedule 07.01.2023

Безопасно ли unsafeThaw индексированный неупакованный вектор?
Я только что опубликовал этот код: import qualified Data.Vector.Unboxed as VU import qualified Data.Vector.Algorithms.Intro as VAlgo argSort :: (Ord a, VU.Unbox a) => VU.Vector a -> VU.Vector Int argSort xs = VU.map fst $ VU.create $ do...
94 просмотров