Spec-Zone.ru › Haskell 8

GHC.ST

Авторские права (c) Университет Глазго 1992-2002
Лицензия см. libraries/base/LICENSE
Поддержка cvs-ghc@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)
Экземпляры
Подробности о экземплярах
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

Методы

fmap :: (a -> b) -> ST s a -> ST s b Исходный код

(<$) :: a -> ST s b -> ST s a Исходный код

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

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

Определено в GHC.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 Исходный код

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 Исходный код

data STret s a Source

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

STret (State# s) a

type STRep s a = State# s -> (# State# s, a #) Source

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

Spec-Zone.ru

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