Spec-Zone.ru › Haskell 7

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: тип элементов массива.

Экземпляры

MArray (STArray s) e (ST s)
MArray (STArray s) e (ST s)
Eq (STArray s i 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

Spec-Zone.ru

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