GHC.ST
| Авторские права | (c) Университет Глазго 1992-2002 |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Поддержка | cvs-ghc@haskell.org |
| Устойчивость | внутренняя |
| Переносимость | непереносимая (расширения GHC) |
| Безопасный Haskell | Небезопасный |
| Язык | Haskell2010 |
Содержание
Описание
Моноид ST.
Жесткий моноид ST. Моноид ST позволяет выполнять деструктивные обновления, но является вызываемым (в отличие от IO). Вычисление типа ST s a возвращает значение типа a, и выполняется в "потоке" s. Параметр s либо
Он служит для поддержания внутренних состояний различных вызовов runST в отдельности друг от друга и от вызовов stToIO.
Операции >>= и >> строгие по отношению к состоянию (хотя и не к значениям, хранящимся в состоянии). Например,
runST (writeSTRef _|_ v >>= f) = _|_
Экземпляры
| Monad (ST s) | С версии: base-2.1 |
Определено в GHC.ST Методы(>>=) :: ST s a -> (a -> ST s b) -> ST s b Исходный код (>>) :: ST s a -> ST s b -> ST s b Исходный код return :: a -> ST s a Исходный код | |
| Functor (ST s) | С версии: base-2.1 |
Определено в GHC.ST | |
| MonadFix (ST s) | С версии: base-2.1 |
Определено в Control.Monad.Fix Методыmfix :: (a -> ST s a) -> ST s a Исходный код | |
| MonadFail (ST s) | С версии: base-4.11.0.0 |
Определено в GHC.ST Методыfail :: String -> ST s a Исходный код | |
| Applicative (ST s) | С версии: base-4.4.0.0 |
Определено в GHC.ST Методыpure :: a -> ST s a Исходный код (<*>) :: ST s (a -> b) -> ST s a -> ST s b Исходный код liftA2 :: (a -> b -> c) -> ST s a -> ST s b -> ST s c Исходный код (*>) :: ST s a -> ST s b -> ST s b Исходный код (<*) :: ST s a -> ST s b -> ST s a Исходный код | |
| Show (ST s a) | С версии: base-2.1 |
Определено в GHC.ST МетодыshowsPrec :: Int -> ST s a -> ShowS Исходный код show :: ST s a -> String Исходный код showList :: [ST s a] -> ShowS Исходный код | |
| Semigroup a => Semigroup (ST s a) | С версии: base-4.11.0.0 |
| Monoid a => Monoid (ST s a) | С версии: base-4.11.0.0 |
Определено в GHC.ST Методыmempty :: ST s a Исходный код mappend :: ST s a -> ST s a -> ST s a Исходный код mconcat :: [ST s a] -> ST s a Исходный код | |
runST :: (forall s. ST s a) -> a Source
Возвращает значение, вычисленное потоком состояния. forall гарантирует, что внутреннее состояние, используемое в ST вычислении, недоступно для остальной части программы.
Небезопасные функции
liftST :: ST s a -> State# s -> STret s a Source
unsafeInterleaveST :: ST s a -> ST s a Source
unsafeInterleaveST позволяет ST вычислению откладываться лениво. При передаче значения типа ST a, ST вычисление будет выполнено только при запросе значения a.
unsafeDupableInterleaveST :: ST s a -> ST s a Source
unsafeDupableInterleaveST позволяет ST вычислению откладываться лениво. При передаче значения типа ST a, ST вычисление будет выполнено только при запросе значения a.
Вычисление может быть выполнено несколько раз разными потоками, возможно, одновременно. Для предотвращения этого используйте unsafeInterleaveST.
С версии: base-4.11
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/GHC-ST.html