Spec-Zone.ru › Haskell 7

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

Экземпляры

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) Булево (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

Spec-Zone.ru

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