Spec-Zone.ru › Haskell 9

GHC.ST

Авторские права (c) Университет Глазго 1992-2002
Лицензия см. libraries/base/LICENSE
Поддержка ghc-devs@haskell.org
Стабильность внутренняя
Переносимость непереносимая (расширения GHC)
Безопасный Haskell Нет
Язык Haskell2010

Содержание

  • Небезопасные функции

Описание

Моноид ST.

newtype ST s a Источник

Жесткий моноид ST. Моноид ST позволяет выполнять деструктивные обновления, но является ускользающим (в отличие от IO). Вычисление типа ST s a возвращает значение типа a, и выполняется в "потоке" s. Параметр s это либо

  • неинициализированная переменная типа (внутри вызовов runST), или
  • RealWorld (внутри вызовов stToIO).

Он служит для того, чтобы внутренние состояния разных вызовов runST оставались изолированными друг от друга и от вызовов stToIO.

Операции >>= и >> являются жёсткими относительно состояния (хотя и не относительно значений, хранящихся в состоянии). Например,

runST (writeSTRef _|_ v >>= f) = _|_

Конструкторы

ST (STRep s a)
Экземпляры
Подробности об экземплярах
Applicative (ST s) Источник

С версии: base-4.4.0.0

Подробности об экземпляре

Определено в GHC.Internal.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 Источник

Functor (ST s) Источник

С версии: base-2.1

Подробности об экземпляре

Определено в GHC.Internal.ST

Методы

fmap :: (a -> b) -> ST s a -> ST s b Источник

(<$) :: a -> ST s b -> ST s a Источник

Monad (ST s) Источник

С версии: base-2.1

Подробности об экземпляре

Определено в GHC.Internal.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 Источник

MonadFix (ST s) Источник

С версии: base-2.1

Подробности об экземпляре

Определено в GHC.Internal.Control.Monad.Fix

Методы

mfix :: (a -> ST s a) -> ST s a Источник

Monoid a => Monoid (ST s a) Источник

С версии: base-4.11.0.0

Подробности об экземпляре

Определено в GHC.Internal.ST

Методы

mempty :: ST s a Источник

mappend :: ST s a -> ST s a -> ST s a Источник

mconcat :: [ST s a] -> ST s a Источник

Semigroup a => Semigroup (ST s a) Источник

С версии: base-4.11.0.0

Подробности об экземпляре

Определено в GHC.Internal.ST

Методы

(<>) :: ST s a -> ST s a -> ST s a Источник

sconcat :: NonEmpty (ST s a) -> ST s a Источник

stimes :: Integral b => b -> ST s a -> ST s a Источник

Show (ST s a) Источник

С версии: base-2.1

Подробности экземпляра

Определено в GHC.Internal.ST

Методы

showsPrec :: Целое -> ST s a -> ShowS Исходный код

show :: ST s a -> Строка Исходный код

showList :: [ST s a] -> ShowS Исходный код

data STret s a Исходный код

Конструкторы

STret (State# s) a

type STRep s a = State# s -> (# State# s, a #) Исходный код

runST :: (forall s. ST s a) -> a Исходный код

Возвращает значение, вычисленное потоком состояния. forall гарантирует, что внутреннее состояние, используемое в ST вычислении, недоступно остальной части программы.

Небезопасные функции

liftST :: ST s a -> State# s -> STret s a Исходный код

unsafeInterleaveST :: ST s a -> ST s a Исходный код

unsafeInterleaveST позволяет отложить ST вычисление лениво. При передаче значения типа ST a, ST вычисление будет выполнено только при запросе значения a.

unsafeDupableInterleaveST :: ST s a -> ST s a Исходный код

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/9.12.1/docs/libraries/base-4.21.0.0-8e62/GHC-ST.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API