Spec-Zone.ru › Haskell 7

Data.Array.MArray

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.Base)
Safe Haskell None
Language Haskell2010

Содержание

  • Класс типов изменяемых массивов
  • Класс Ix и операции
  • Создание изменяемых массивов
  • Чтение и запись в изменяемые массивы
  • Производные массивы
  • Декомпозиция изменяемых массивов
  • Преобразования между изменяемыми и неизменяемыми массивами

Описание

Перегруженный интерфейс для изменяемых массивов. Для типов массивов, которые могут быть использованы с этим интерфейсом, см. Data.Array.IO, Data.Array.ST и Data.Array.Storable.

Класс типов изменяемых массивов

class Monad m => MArray a e m where Источник

Класс типов изменяемых массивов.

Тип массива имеет вид (a i e) , где a — конструктор типа массива (вид * -> * -> *), i — тип индекса (элемент класса Ix), а e — тип элементов.

Класс MArray параметризован как по a, так и по e (чтобы можно было определить специализированные по типу элементов экземпляры, аналогично IArray), а также по типу монады m, в которой будет манипулироваться изменяемым массивом.

Минимальное полное определение

getBounds, getNumElements, unsafeRead, unsafeWrite

Методы

getBounds :: Ix i => a i e -> m (i, i) Источник

Возвращает границы массива

newArray :: Ix i => (i, i) -> e -> m (a i e) Источник

Создаёт новый массив, инициализируя каждый элемент заданным значением.

newArray_ :: Ix i => (i, i) -> m (a i e) Источник

Создаёт новый массив, инициализируя каждый элемент неопределённым значением. В контексте монады, в котором операции должны быть детерминированными (например, монада ST), элементы массива инициализируются фиксированным, но неопределённым значением, таким как ноль.

Экземпляры

MArray IOArray e IO
MArray IOUArray Bool IO
MArray IOUArray Char IO
MArray IOUArray Double IO
MArray IOUArray Float IO
MArray IOUArray Int IO
MArray IOUArray Int8 IO
MArray IOUArray Int16 IO
MArray IOUArray Int32 IO
MArray IOUArray Int64 IO
MArray IOUArray Word IO
MArray IOUArray Word8 IO
MArray IOUArray Word16 IO
MArray IOUArray Word32 IO
MArray IOUArray Word64 IO
Storable e => MArray StorableArray e IO
MArray IOUArray (StablePtr a) IO
MArray IOUArray (Ptr a) IO
MArray IOUArray (FunPtr a) IO
MArray (STArray s) e (ST s)
MArray (STArray s) e (ST s)
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) Char (ST s)
MArray (STUArray s) Bool (ST s)
MArray (STUArray s) (StablePtr a) (ST s)
MArray (STUArray s) (FunPtr a) (ST s)
MArray (STUArray s) (Ptr a) (ST s)

Класс Ix и операции

module Data.Ix

Создание изменяемых массивов

newListArray :: (MArray a e m, Ix i) => (i, i) -> [e] -> m (a i e) Source

Создает изменяемый массив из списка начальных элементов. Список задает элементы массива в порядке возрастания, начиная с наименьшего индекса.

Чтение и запись изменяемых массивов

readArray :: (MArray a e m, Ix i) => a i e -> i -> m e Source

Чтение элемента из изменяемого массива

writeArray :: (MArray a e m, Ix i) => a i e -> i -> e -> m () Source

Запись элемента в изменяемый массив

Производные массивы

mapArray :: (MArray a e' m, MArray a e m, Ix i) => (e' -> e) -> a i e' -> m (a i e) Source

Создаёт новый массив, полученный из исходного массива путём применения функции к каждому элементу.

mapIndices :: (MArray a e m, Ix i, Ix j) => (i, i) -> (i -> j) -> a j e -> m (a i e) Source

Создаёт новый массив, полученный из исходного массива путём применения функции к каждому индексу.

Распаковка изменяемых массивов

getElems :: (MArray a e m, Ix i) => a i e -> m [e] Source

Возвращает список всех элементов изменяемого массива

getAssocs :: (MArray a e m, Ix i) => a i e -> m [(i, e)] Source

Возвращает список всех ассоциаций изменяемого массива в порядке индексов.

Преобразования между изменяемыми и неизменяемыми массивами

freeze :: (Ix i, MArray a e m, IArray b e) => a i e -> m (b i e) Source

Преобразует изменяемый массив (любой экземпляр MArray) в неизменяемый массив (любой экземпляр IArray) путём создания его полной копии.

thaw :: (Ix i, IArray a e, MArray b e m) => a i e -> m (b i e) Source

Преобразует неизменяемый массив (любой экземпляр IArray) в изменяемый массив (любой экземпляр 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-MArray.html

Spec-Zone.ru

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