Spec-Zone.ru › Haskell 9

Data.Array.ST

Copyright (c) The University of Glasgow 2001
License BSD-style (see the file libraries/base/LICENSE)
Maintainer libraries@haskell.org
Stability experimental
Portability non-portable (uses Data.Array.MArray)
Safe Haskell Trustworthy
Language Haskell2010

Содержание

  • Массивы в коробках
  • Массивы без коробок
  • Перегруженный интерфейс изменяемого массива

Описание

Изменяемые массивы в коробках и без в ST монаде.

Массивы в коробках

data STArray s i e

Экземпляры
Подробности о экземплярах
MArray (STArray s) e (ST s) Source
Подробности о экземпляре

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

Методы

getBounds :: Ix i => STArray s i e -> ST s (i, i) Source

getNumElements :: Ix i => STArray s i e -> ST s Int Source

newArray :: Ix i => (i, i) -> e -> ST s (STArray s i e) Source

newArray_ :: Ix i => (i, i) -> ST s (STArray s i e) Source

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STArray s i e) Source

unsafeRead :: Ix i => STArray s i e -> Int -> ST s e Source

unsafeWrite :: Ix i => STArray s i e -> Int -> e -> ST s () Source

MArray (STArray s) e (ST s) Source
Подробности о экземпляре

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

Методы

getBounds :: Ix i => STArray s i e -> ST s (i, i) Source

getNumElements :: Ix i => STArray s i e -> ST s Int Source

newArray :: Ix i => (i, i) -> e -> ST s (STArray s i e) Source

newArray_ :: Ix i => (i, i) -> ST s (STArray s i e) Source

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STArray s i e) Source

unsafeRead :: Ix i => STArray s i e -> Int -> ST s e Source

unsafeWrite :: Ix i => STArray s i e -> Int -> e -> ST s () Source

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 Source

Безопасный способ создать и работать с изменяемым массивом, прежде чем вернуть неизменяемый массив для последующего просмотра. Эта функция позволяет избежать копирования массива перед его возвращением — внутри используется unsafeFreeze, но этот обёрткa является безопасным интерфейсом к этой функции.

Массивы без коробок

data STUArray s i e Source

Мультимассив с нераспакованными элементами, который может быть изменен в ST монаде. Аргументы типа следующие:

  • s: аргумент переменной состояния для типа ST
  • i: тип индекса массива (должен быть экземпляром Ix)
  • e: тип элемента массива. Поддерживаются только определенные типы элементов.

STUArray обычно будет более эффективным (с точки зрения как времени, так и пространства) по сравнению с эквивалентной распакованной версией (STArray) с тем же типом элементов. Однако, STUArray является строгим в своих элементах — поэтому не используйте STUArray, если вам нужна нестрогость, которую обеспечивает STArray.

Экземпляры
Подробности об экземплярах
MArray (STUArray s) Int16 (ST s) Source
Подробности об экземпляре

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

Методы

getBounds :: Ix i => STUArray s i Int16 -> ST s (i, i) Source

getNumElements :: Ix i => STUArray s i Int16 -> ST s Int Source

newArray :: Ix i => (i, i) -> Int16 -> ST s (STUArray s i Int16) Source

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int16) Source

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int16) Source

unsafeRead :: Ix i => STUArray s i Int16 -> Int -> ST s Int16 Source

unsafeWrite :: Ix i => STUArray s i Int16 -> Int -> Int16 -> ST s () Source

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

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

Методы

getBounds :: Ix i => STUArray s i Int32 -> ST s (i, i) Source

getNumElements :: Ix i => STUArray s i Int32 -> ST s Int Source

newArray :: Ix i => (i, i) -> Int32 -> ST s (STUArray s i Int32) Source

newArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int32) Source

unsafeNewArray_ :: Ix i => (i, i) -> ST s (STUArray s i Int32) Source

unsafeRead :: Ix i => STUArray s i Int32 -> Int -> ST s Int32 Source

unsafeWrite :: Ix i => STUArray s i Int32 -> Int -> Int32 -> ST s () Source

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

Определено в 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.12.1/docs/libraries/array-0.5.8.0-8d84/Data-Array-ST.html

Spec-Zone.ru

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