Data.Array.ST
| Авторские права | (c) The University of Glasgow 2001 |
|---|---|
| Лицензия | В стиле BSD (см. файл libraries/base/LICENSE) |
| Сопровождающий | libraries@haskell.org |
| Стабильность | экспериментальная |
| Переносимость | непереносимый (использует Data.Array.MArray) |
| Безопасный Haskell | Trustworthy |
| Язык | Haskell2010 |
Описание
Изменяемые массивы с упакованными и распакованными элементами в монаде ST.
Массивы с упакованными элементами
data STArray s i e
Экземпляры
| MArray (STArray s) e (ST s) Источник | |
Определён в Data.Array.Base МетодыgetBounds :: Ix i => STArray s i e -> ST s (i, i) Источник getNumElements :: Ix i => STArray s i e -> ST s Int Источник newArray :: Ix i => (i, i) -> e -> ST s (STArray s i e) Источник newArray_ :: Ix i => (i, i) -> ST s (STArray s i e) Источник unsafeNewArray_ :: Ix i => (i, i) -> ST s (STArray s i e) Источник unsafeRead :: Ix i => STArray s i e -> Int -> ST s e Источник unsafeWrite :: Ix i => STArray s i e -> Int -> e -> ST s () Источник | |
| MArray (STArray s) e (ST s) Источник | |
Определён в Data.Array.Base МетодыgetBounds :: Ix i => STArray s i e -> ST s (i, i) Источник getNumElements :: Ix i => STArray s i e -> ST s Int Источник newArray :: Ix i => (i, i) -> e -> ST s (STArray s i e) Источник newArray_ :: Ix i => (i, i) -> ST s (STArray s i e) Источник unsafeNewArray_ :: Ix i => (i, i) -> ST s (STArray s i e) Источник unsafeRead :: Ix i => STArray s i e -> Int -> ST s e Источник unsafeWrite :: Ix i => STArray s i e -> Int -> e -> ST s () Источник | |
| Eq (STArray s i e) | |
runSTArray :: (forall s. ST s (STArray s i e)) -> Array i e Источник
Безопасный способ создать и использовать изменяемый массив, а затем вернуть неизменяемый массив для дальнейшего ознакомления. Эта функция возвращает массив, не копируя его: внутри она использует unsafeFreeze, однако эта обёртка обеспечивает безопасный интерфейс к этой функции.
Массивы с распакованными элементами
Изменяемый массив с распакованными элементами, которым можно манипулировать в монаде ST. Аргументы типа имеют следующий смысл:
-
s: аргумент-переменная состояния для типаST -
i: тип индекса массива (должен быть экземпляромIx) -
e: тип элементов массива. Поддерживаются только некоторые типы элементов.
Как правило, STUArray будет эффективнее (и по времени, и по памяти), чем эквивалентная версия с упакованными элементами (STArray) и тем же типом элементов. Однако STUArray строго вычисляет свои элементы, поэтому не используйте STUArray, если вам нужна нестрогость, обеспечиваемая STArray.
Экземпляры
runSTUArray :: (forall s. ST s (STUArray s i e)) -> UArray i e Исходный код
Безопасный способ создавать и использовать изменяемый массив без указателей, а затем возвращать неизменяемый массив для последующего изучения. Эта функция не копирует массив перед его возвратом: внутри она использует unsafeFreeze, но эта обёртка предоставляет безопасный интерфейс к этой функции.
Перегруженный интерфейс изменяемых массивов
module Data.Array.MArray
© 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/array-0.5.8.0-93e8/Data-Array-ST.html