Spec-Zone.ru › Haskell 9

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)
Сведения об экземпляре

Определён в GHC.Internal.Arr

Методы

(==) :: STArray s i e -> STArray s i e -> Bool

(/=) :: STArray s i e -> STArray s i e -> Bool

runSTArray :: (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) Int16 (ST s) Источник
Подробности экземпляра

Определено в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Int16 -> ST s (i, i) Источник

getNumElements :: Ix i => STUArray s i Int16 -> ST s Int Источник

newArray :: Ix i => (i, i) -> Int16 -> ST s (STUArray s i Int16) Источник

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int16) Источник

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int16) Источник

unsafeRead :: Ix i => STUArray s i Int16 -> Int -> ST s Int16 Источник

unsafeWrite :: Ix i => STUArray s i Int16 -> Int -> Int16 -> ST s () Источник

MArray (STUArray s) Int32 (ST s) Источник
Подробности экземпляра

Определено в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Int32 -> ST s (i, i) Источник

getNumElements :: Ix i => STUArray s i Int32 -> ST s Int Источник

newArray :: Ix i => (i, i) -> Int32 -> ST s (STUArray s i Int32) Источник

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int32) Источник

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int32) Источник

unsafeRead :: Ix i => STUArray s i Int32 -> Int -> ST s Int32 Источник

unsafeWrite :: Ix i => STUArray s i Int32 -> Int -> Int32 -> ST s () Источник

MArray (STUArray s) Int64 (ST s) Источник
Подробности экземпляра

Определено в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Int64 -> ST s (i, i) Источник

getNumElements :: Ix i => STUArray s i Int64 -> ST s Int Источник

newArray :: Ix i => (i, i) -> Int64 -> ST s (STUArray s i Int64) Источник

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int64) Источник

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int64) Источник

unsafeRead :: Ix i => STUArray s i Int64 -> Int -> ST s Int64 Источник

unsafeWrite :: Ix i => STUArray s i Int64 -> Int -> Int64 -> ST s () Источник

MArray (STUArray s) Int8 (ST s) Источник
Подробности экземпляра

Определено в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Int8 -> ST s (i, i) Источник

getNumElements :: Ix i => STUArray s i Int8 -> ST s Int Источник

newArray :: Ix i => (i, i) -> Int8 -> ST s (STUArray s i Int8) Источник

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int8) Источник

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int8) Источник

unsafeRead :: Ix i => STUArray s i Int8 -> Int -> ST s Int8 Источник

unsafeWrite :: Ix i => STUArray s i Int8 -> Int -> Int8 -> ST s () Источник

MArray (STUArray s) Word16 (ST s) Источник
Подробности экземпляра

Определено в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Word16 -> ST s (i, i) Источник

getNumElements :: Ix i => STUArray s i Word16 -> ST s Int Источник

newArray :: Ix i => (i, i) -> Word16 -> ST s (STUArray s i Word16) Источник

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Word16) Источник

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Word16) Источник

unsafeRead :: Ix i => STUArray s i Word16 -> Int -> ST s Word16 Источник

unsafeWrite :: Ix i => STUArray s i Word16 -> Int -> Word16 -> ST s () Источник

MArray (STUArray s) Word32 (ST s) Источник
Подробности экземпляра

Определено в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Word32 -> ST s (i, i) Источник

getNumElements :: Ix i => STUArray s i Word32 -> ST s Int Источник

newArray :: Ix i => (i, i) -> Word32 -> ST s (STUArray s i Word32) Источник

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Word32) Источник

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Word32) Источник

unsafeRead :: Ix i => STUArray s i Word32 -> Int -> ST s Word32 Источник

unsafeWrite :: Ix i => STUArray s i Word32 -> Int -> Word32 -> ST s () Источник

MArray (STUArray s) Word64 (ST s) Источник
Подробности экземпляра

Определено в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Word64 -> ST s (i, i) Источник

getNumElements :: Ix i => STUArray s i Word64 -> ST s Int Источник

newArray :: Ix i => (i, i) -> Word64 -> ST s (STUArray s i Word64) Источник

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Word64) Источник

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Word64) Источник

unsafeRead :: Ix i => STUArray s i Word64 -> Int -> ST s Word64 Источник

unsafeWrite :: Ix i => STUArray s i Word64 -> Int -> Word64 -> ST s () Источник

MArray (STUArray s) Word8 (ST s) Источник
Подробности экземпляра

Определено в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Word8 -> ST s (i, i) Источник

getNumElements :: Ix i => STUArray s i Word8 -> ST s Int Источник

newArray :: Ix i => (i, i) -> Word8 -> ST s (STUArray s i Word8) Источник

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Word8) Источник

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Word8) Источник

unsafeRead :: Ix i => STUArray s i Word8 -> Int -> ST s Word8 Источник

unsafeWrite :: Ix i => STUArray s i Word8 -> Int -> Word8 -> ST s () Источник

MArray (STUArray s) Bool (ST s) Источник
Подробности экземпляра

Определено в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Bool -> ST s (i, i) Источник

getNumElements :: Ix i => STUArray s i Bool -> ST s Int Источник

newArray :: Ix i => (i, i) -> Bool -> ST s (STUArray s i Bool) Источник

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Bool) Источник

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Bool) Источник

unsafeRead :: Ix i => STUArray s i Bool -> Int -> ST s Bool Источник

unsafeWrite :: Ix i => STUArray s i Bool -> Int -> Bool -> ST s () Источник

MArray (STUArray s) Char (ST s) Источник
Подробности экземпляра

Определено в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Char -> ST s (i, i) Источник

getNumElements :: Ix i => STUArray s i Char -> ST s Int Источник

newArray :: Ix i => (i, i) -> Char -> ST s (STUArray s i Char) Источник

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Char) Источник

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Char) Источник

unsafeRead :: Ix i => STUArray s i Char -> Int -> ST s Char Источник

unsafeWrite :: Ix i => STUArray s i Char -> Int -> Char -> ST s () Источник

MArray (STUArray s) Double (ST s) Источник
Подробности экземпляра

Определено в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Double -> ST s (i, i) Источник

getNumElements :: Ix i => STUArray s i Double -> ST s Int Источник

newArray :: Ix i => (i, i) -> Double -> ST s (STUArray s i Double) Источник

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Double) Источник

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Double) Источник

unsafeRead :: Ix i => STUArray s i Double -> Int -> ST s Double Источник

unsafeWrite :: Ix i => STUArray s i Double -> Int -> Double -> ST s () Источник

MArray (STUArray s) Float (ST s) Источник
Подробности экземпляра

Определено в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Float -> ST s (i, i) Источник

getNumElements :: Ix i => STUArray s i Float -> ST s Int Источник

newArray :: Ix i => (i, i) -> Float -> ST s (STUArray s i Float) Источник

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Float) Источник

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Float) Источник

unsafeRead :: Ix i => STUArray s i Float -> Int -> ST s Float Источник

unsafeWrite :: Ix i => STUArray s i Float -> Int -> Float -> ST s () Источник

MArray (STUArray s) Int (ST s) Источник
Сведения об экземпляре

Определён в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Int -> ST s (i, i) Исходный код

getNumElements :: Ix i => STUArray s i Int -> ST s Int Исходный код

newArray :: Ix i => (i, i) -> Int -> ST s (STUArray s i Int) Исходный код

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int) Исходный код

unsafeRead :: Ix i => STUArray s i Int -> Int -> ST s Int Исходный код

unsafeWrite :: Ix i => STUArray s i Int -> Int -> Int -> ST s () Исходный код

MArray (STUArray s) Word (ST s) Исходный код
Сведения об экземпляре

Определён в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i Word -> ST s (i, i) Исходный код

getNumElements :: Ix i => STUArray s i Word -> ST s Int Исходный код

newArray :: Ix i => (i, i) -> Word -> ST s (STUArray s i Word) Исходный код

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Word) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Word) Исходный код

unsafeRead :: Ix i => STUArray s i Word -> Int -> ST s Word Исходный код

unsafeWrite :: Ix i => STUArray s i Word -> Int -> Word -> ST s () Исходный код

MArray (STUArray s) (FunPtr a) (ST s) Исходный код
Сведения об экземпляре

Определён в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i (FunPtr a) -> ST s (i, i) Исходный код

getNumElements :: Ix i => STUArray s i (FunPtr a) -> ST s Int Исходный код

newArray :: Ix i => (i, i) -> FunPtr a -> ST s (STUArray s i (FunPtr a)) Исходный код

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i (FunPtr a)) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i (FunPtr a)) Исходный код

unsafeRead :: Ix i => STUArray s i (FunPtr a) -> Int -> ST s (FunPtr a) Исходный код

unsafeWrite :: Ix i => STUArray s i (FunPtr a) -> Int -> FunPtr a -> ST s () Исходный код

MArray (STUArray s) (Ptr a) (ST s) Исходный код
Сведения об экземпляре

Определён в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i (Ptr a) -> ST s (i, i) Исходный код

getNumElements :: Ix i => STUArray s i (Ptr a) -> ST s Int Исходный код

newArray :: Ix i => (i, i) -> Ptr a -> ST s (STUArray s i (Ptr a)) Исходный код

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i (Ptr a)) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i (Ptr a)) Исходный код

unsafeRead :: Ix i => STUArray s i (Ptr a) -> Int -> ST s (Ptr a) Исходный код

unsafeWrite :: Ix i => STUArray s i (Ptr a) -> Int -> Ptr a -> ST s () Исходный код

MArray (STUArray s) (StablePtr a) (ST s) Исходный код
Сведения об экземпляре

Определён в Data.Array.Base

Методы

getBounds :: Ix i => STUArray s i (StablePtr a) -> ST s (i, i) Исходный код

getNumElements :: Ix i => STUArray s i (StablePtr a) -> ST s Int Исходный код

newArray :: Ix i => (i, i) -> StablePtr a -> ST s (STUArray s i (StablePtr a)) Исходный код

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i (StablePtr a)) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i (StablePtr a)) Исходный код

unsafeRead :: Ix i => STUArray s i (StablePtr a) -> Int -> ST s (StablePtr a) Исходный код

unsafeWrite :: Ix i => STUArray s i (StablePtr a) -> Int -> StablePtr a -> ST s () Исходный код

Eq (STUArray s i e) Исходный код
Сведения об экземпляре

Определён в Data.Array.Base

Методы

(==) :: STUArray s i e -> STUArray s i e -> Bool

(/=) :: STUArray s i e -> STUArray s i e -> Bool

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

Spec-Zone.ru

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