Spec-Zone.ru › Haskell 9

GHC.ST

Авторские права (c) The University of Glasgow 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 :: Int -> ST s a -> ShowS Источник

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

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.14.1/docs/libraries/base-4.22.0.0-66f8/GHC-ST.html

Spec-Zone.ru

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