Data.Array.ST
| Авторские права | (c) Университет Глазго 2001 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | libraries@haskell.org |
| Стабильность | экспериментальная |
| Переносимость | непереносимая (использует Data.Array.MArray) |
| Safe Haskell | Нет |
| Язык | Haskell2010 |
Описание
Изменяемые упакованные и неупакованные массивы в ST монаде.
Упакованные массивы
data STArray s i e :: * -> * -> * -> * Источник
Изменяемые, упакованные, нестрогие массивы в ST монаде. Аргументы типа следующие:
-
s: аргумент переменной состояния для типаST -
i: тип индекса массива (должен быть экземпляромIx) -
e: тип элементов массива.
runSTArray :: Ix i => (forall s. ST s (STArray s i e)) -> Array i e Источник
Безопасный способ создания и работы с изменяемым массивом перед возвращением неизменяемого массива для последующего использования. Эта функция избегает копирования массива перед возвратом — она использует unsafeFreeze внутри, но эта обертка — безопасный интерфейс к этой функции.
Неупакованные массивы
Изменяемый массив с неупакованными элементами, который можно обрабатывать в ST монаде. Аргументы типа следующие:
-
s: аргумент переменной состояния для типаST -
i: тип индекса массива (должен быть экземпляромIx) -
e: тип элементов массива. Поддерживаются только определенные типы элементов.
STUArray обычно будет более эффективным (по времени и памяти) по сравнению с эквивалентной упакованной версией (STArray) с тем же типом элементов. Однако, STUArray строго относится к своим элементам — поэтому не используйте STUArray, если вам требуется нестрогость, которую обеспечивает STArray.
Примеры использования
| MArray (STUArray s) Word64 (ST s) | |
| MArray (STUArray s) Word32 (ST s) | |
| MArray (STUArray s) Word16 (ST s) | |
| MArray (STUArray s) Word8 (ST s) | |
| MArray (STUArray s) Int64 (ST s) | |
| MArray (STUArray s) Int32 (ST s) | |
| MArray (STUArray s) Int16 (ST s) | |
| MArray (STUArray s) Int8 (ST s) | |
| MArray (STUArray s) Double (ST s) | |
| MArray (STUArray s) Float (ST s) | |
| MArray (STUArray s) Word (ST s) | |
| MArray (STUArray s) Int (ST s) | |
| MArray (STUArray s) Символ (ST s) | |
| MArray (STUArray s) Булево (ST s) | |
| MArray (STUArray s) (StablePtr a) (ST s) | |
| MArray (STUArray s) (Функциональный указатель a) (ST s) | |
| MArray (STUArray s) (Указатель a) (ST s) | |
| Равенство (STUArray s i e) |
runSTUArray :: Индекс i => (forall s. ST s (STUArray s i e)) -> UArray i e Источник
Безопасный способ создания и работы с необработанным изменяемым массивом перед возвратом неизменяемого массива для последующего ознакомления. Эта функция избегает копирования массива перед возвратом — она использует unsafeFreeze внутри, но этот обертывающий элемент является безопасным интерфейсом к этой функции.
Перегруженный интерфейс изменяемого массива
модуль 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/7.10.3/docs/html/libraries/array-0.5.1.0/Data-Array-ST.html