Data.Array.ST.Safe
| Авторские права | (c) Университет Глазго 2011 |
|---|---|
| Лицензия | BSD (см. файл libraries/base/LICENSE) |
| Поддержка | libraries@haskell.org |
| Стабильность | экспериментальная |
| Переносимость | непереносимая (использует Data.Array.MArray) |
| Safe Haskell | Надежный |
| Язык | Haskell2010 |
Содержание
Описание
Изменяемые массивы с упакованными и неупакованными значениями в ST монаде.
Только безопасный API из Data.Array.ST.
С версии: 0.4.0.0
Массивы с упакованными значениями
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 внутри, но этот обертка — это безопасный интерфейс к этой функции.
Массивы без упаковки значений
data STUArray s i e Исходный код
Изменяемый массив с неупакованными элементами, который можно обрабатывать в 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) Bool (ST s) | |
| MArray (STUArray s) (Указатель стабильного объекта) (ST s) | |
| MArray (STUArray s) (Функциональный указатель) (ST s) | |
| MArray (STUArray s) (Указатель) (ST s) | |
| Eq (STUArray s i e) |
runSTUArray :: Индекс i => (forall s. ST s (STUArray s i e)) -> Массив i e Исходный код
Безопасный способ создания и работы с разложенным (unboxed) изменяемым массивом перед возвратом неизменяемого массива для последующего просмотра. Эта функция избегает копирования массива перед возвратом — она использует unsafeFreeze внутри, но этот обёртку является безопасным интерфейсом к этой функции.
Перегруженный интерфейс изменяемых массивов
модуль Data.Array.MArray.Safe
© 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-Safe.html