Spec-Zone.ru › Haskell 9

Data.Array.MArray

Авторские права (c) Университет Глазго 2001
Лицензия BSD-стиль (см. файл libraries/base/LICENSE)
Разработчик libraries@haskell.org
Стабильность экспериментальная
Переносимость непереносимо (использует Data.Array.Base)
Safe Haskell Надёжный
Язык Haskell2010

Содержание

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

Описание

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

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

class Monad m => MArray (a :: Type -> Type -> Type) e (m :: Type -> Type) Источник

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

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

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

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

getBounds, getNumElements, (newArray | unsafeNewArray_), unsafeRead, unsafeWrite

Примеры использования
Подробности примеров использования
MArray IOUArray Int16 IO Исходный код
Подробности примера

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

Методы

getBounds :: Ix i => IOUArray i Int16 -> IO (i, i) Исходный код

getNumElements :: Ix i => IOUArray i Int16 -> IO Целое число Исходный код

newArray :: Ix i => (i, i) -> Int16 -> IO (IOUArray i Int16) Исходный код

newArray_ :: Ix i => (i, i) -> IO (IOUArray i Int16) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOUArray i Int16) Исходный код

unsafeRead :: Ix i => IOUArray i Int16 -> Целое число -> IO Int16 Исходный код

unsafeWrite :: Ix i => IOUArray i Int16 -> Целое число -> Int16 -> IO () Исходный код

MArray IOUArray Int32 IO Исходный код
Подробности примера

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

Методы

getBounds :: Ix i => IOUArray i Int32 -> IO (i, i) Исходный код

getNumElements :: Ix i => IOUArray i Int32 -> IO Целое число Исходный код

newArray :: Ix i => (i, i) -> Int32 -> IO (IOUArray i Int32) Исходный код

newArray_ :: Ix i => (i, i) -> IO (IOUArray i Int32) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOUArray i Int32) Исходный код

unsafeRead :: Ix i => IOUArray i Int32 -> Целое число -> IO Int32 Исходный код

unsafeWrite :: Ix i => IOUArray i Int32 -> Целое число -> Int32 -> IO () Исходный код

MArray IOUArray Int64 IO Исходный код
Сведения об экземпляре

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

Методы

getBounds :: Ix i => IOUArray i Int64 -> IO (i, i) Исходный код

getNumElements :: Ix i => IOUArray i Int64 -> IO Int Исходный код

newArray :: Ix i => (i, i) -> Int64 -> IO (IOUArray i Int64) Исходный код

newArray_ :: Ix i => (i, i) -> IO (IOUArray i Int64) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOUArray i Int64) Исходный код

unsafeRead :: Ix i => IOUArray i Int64 -> Int -> IO Int64 Исходный код

unsafeWrite :: Ix i => IOUArray i Int64 -> Int -> Int64 -> IO () Исходный код

MArray IOUArray Int8 IO Исходный код
Сведения об экземпляре

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

Методы

getBounds :: Ix i => IOUArray i Int8 -> IO (i, i) Исходный код

getNumElements :: Ix i => IOUArray i Int8 -> IO Int Исходный код

newArray :: Ix i => (i, i) -> Int8 -> IO (IOUArray i Int8) Исходный код

newArray_ :: Ix i => (i, i) -> IO (IOUArray i Int8) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOUArray i Int8) Исходный код

unsafeRead :: Ix i => IOUArray i Int8 -> Int -> IO Int8 Исходный код

unsafeWrite :: Ix i => IOUArray i Int8 -> Int -> Int8 -> IO () Исходный код

MArray IOUArray Word16 IO Исходный код
Подробности экземпляра

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

Методы

getBounds :: Ix i => IOUArray i Word16 -> IO (i, i) Исходный код

getNumElements :: Ix i => IOUArray i Word16 -> IO Int Исходный код

newArray :: Ix i => (i, i) -> Word16 -> IO (IOUArray i Word16) Исходный код

newArray_ :: Ix i => (i, i) -> IO (IOUArray i Word16) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOUArray i Word16) Исходный код

unsafeRead :: Ix i => IOUArray i Word16 -> Int -> IO Word16 Исходный код

unsafeWrite :: Ix i => IOUArray i Word16 -> Int -> Word16 -> IO () Исходный код

MArray IOUArray Word32 IO Исходный код
Подробности экземпляра

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

Методы

getBounds :: Ix i => IOUArray i Word32 -> IO (i, i) Исходный код

getNumElements :: Ix i => IOUArray i Word32 -> IO Int Исходный код

newArray :: Ix i => (i, i) -> Word32 -> IO (IOUArray i Word32) Исходный код

newArray_ :: Ix i => (i, i) -> IO (IOUArray i Word32) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOUArray i Word32) Исходный код

unsafeRead :: Ix i => IOUArray i Word32 -> Int -> IO Word32 Исходный код

unsafeWrite :: Ix i => IOUArray i Word32 -> Int -> Word32 -> IO () Исходный код

MArray IOUArray Word64 IO Исходный код
Подробности экземпляра

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

Методы

getBounds :: Ix i => IOUArray i Word64 -> IO (i, i) Исходный код

getNumElements :: Ix i => IOUArray i Word64 -> IO Int Исходный код

newArray :: Ix i => (i, i) -> Word64 -> IO (IOUArray i Word64) Исходный код

newArray_ :: Ix i => (i, i) -> IO (IOUArray i Word64) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOUArray i Word64) Исходный код

unsafeRead :: Ix i => IOUArray i Word64 -> Int -> IO Word64 Исходный код

unsafeWrite :: Ix i => IOUArray i Word64 -> Int -> Word64 -> IO () Исходный код

MArray IOUArray Word8 IO Исходный код
Подробности экземпляра

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

Методы

getBounds :: Ix i => IOUArray i Word8 -> IO (i, i) Исходный код

getNumElements :: Ix i => IOUArray i Word8 -> IO Int Исходный код

newArray :: Ix i => (i, i) -> Word8 -> IO (IOUArray i Word8) Исходный код

newArray_ :: Ix i => (i, i) -> IO (IOUArray i Word8) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOUArray i Word8) Исходный код

unsafeRead :: Ix i => IOUArray i Word8 -> Int -> IO Word8 Исходный код

unsafeWrite :: Ix i => IOUArray i Word8 -> Int -> Word8 -> IO () Исходный код

MArray IOUArray Bool IO Исходный код
Подробности экземпляра

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

Методы

getBounds :: Ix i => IOUArray i Bool -> IO (i, i) Исходный код

getNumElements :: Ix i => IOUArray i Bool -> IO Int Исходный код

newArray :: Ix i => (i, i) -> Bool -> IO (IOUArray i Bool) Исходный код

newArray_ :: Ix i => (i, i) -> IO (IOUArray i Bool) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOUArray i Bool) Исходный код

unsafeRead :: Ix i => IOUArray i Bool -> Int -> IO Bool Исходный код

unsafeWrite :: Ix i => IOUArray i Bool -> Int -> Bool -> IO () Исходный код

MArray IOUArray Символ IO Исходный код
Подробности экземпляра

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

Методы

getBounds :: Ix i => IOUArray i Символ -> IO (i, i) Исходный код

getNumElements :: Ix i => IOUArray i Символ -> IO Целое Исходный код

newArray :: Ix i => (i, i) -> Символ -> IO (IOUArray i Символ) Исходный код

newArray_ :: Ix i => (i, i) -> IO (IOUArray i Символ) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOUArray i Символ) Исходный код

unsafeRead :: Ix i => IOUArray i Символ -> Целое -> IO Символ Исходный код

unsafeWrite :: Ix i => IOUArray i Символ -> Целое -> Символ -> IO () Исходный код

MArray IOUArray Двойное IO Исходный код
Подробности экземпляра

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

Методы

getBounds :: Ix i => IOUArray i Double -> IO (i, i) Исходный код

getNumElements :: Ix i => IOUArray i Double -> IO Int Исходный код

newArray :: Ix i => (i, i) -> Double -> IO (IOUArray i Double) Исходный код

newArray_ :: Ix i => (i, i) -> IO (IOUArray i Double) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOUArray i Double) Исходный код

unsafeRead :: Ix i => IOUArray i Double -> Int -> IO Double Исходный код

unsafeWrite :: Ix i => IOUArray i Double -> Int -> Double -> IO () Исходный код

MArray IOUArray Float IO Исходный код
Подробности экземпляра

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

Методы

getBounds :: Ix i => IOUArray i Float -> IO (i, i) Исходный код

getNumElements :: Ix i => IOUArray i Float -> IO Int Исходный код

newArray :: Ix i => (i, i) -> Float -> IO (IOUArray i Float) Исходный код

newArray_ :: Ix i => (i, i) -> IO (IOUArray i Float) Исходный код

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOUArray i Float) Исходный код

unsafeRead :: Ix i => IOUArray i Float -> Int -> IO Float Исходный код

unsafeWrite :: Ix i => IOUArray i Float -> Int -> Float -> IO () Исходный код

MArray IOUArray Int IO Исходный код
Подробности экземпляра

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

Методы

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

getNumElements :: Ix i => IOUArray i Int -> IO Int Исходный код

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

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

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

unsafeRead :: Ix i => IOUArray i Int -> Int -> IO Int Исходный код

unsafeWrite :: Ix i => IOUArray i Int -> Int -> Int -> IO () Исходный код

MArray IOUArray Word IO Исходный код
Подробности экземпляра

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

Методы

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

getNumElements :: Ix i => IOUArray i Word -> IO Int Исходный код

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

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

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

unsafeRead :: Ix i => IOUArray i Word -> Int -> IO Word Исходный код

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

Storable e => MArray StorableArray e IO Исходный код
Подробности экземпляра

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

Методы

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

getNumElements :: Ix i => StorableArray i e -> IO Int Источник

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

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

unsafeNewArray_ :: Ix i => (i, i) -> IO (StorableArray i e) Источник

unsafeRead :: Ix i => StorableArray i e -> Int -> IO e Источник

unsafeWrite :: Ix i => StorableArray i e -> Int -> e -> IO () Источник

MArray IOArray e IO Источник
Подробности экземпляра

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

Методы

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

getNumElements :: Ix i => IOArray i e -> IO Int Источник

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

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

unsafeNewArray_ :: Ix i => (i, i) -> IO (IOArray i e) Источник

unsafeRead :: Ix i => IOArray i e -> Int -> IO e Источник

unsafeWrite :: Ix i => IOArray i e -> Int -> e -> IO () Источник

MArray IOUArray (FunPtr a) IO Источник
Подробности экземпляра

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

Методы

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

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

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

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

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

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

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

MArray IOUArray (Ptr a) IO Исходный код
Подробности экземпляра

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

Методы

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

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

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

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

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

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

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

MArray IOUArray (StablePtr a) IO Исходный код
Подробности экземпляра

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

Методы

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

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

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

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

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

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

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

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 Целое Исходный код

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 -> Целое -> ST s Float Исходный код

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

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

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

Методы

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

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

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

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

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

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

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

MArray (STUArray s) Целое без знака (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 (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 Целое Исходный код

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 -> Целое -> ST s e Исходный код

unsafeWrite :: Ix i => STArray s i e -> Целое -> e -> 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 Целое Исходный код

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) -> Целое -> ST s (FunPtr a) Исходный код

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

MArray (STUArray s) (Указатель 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 () Исходный код

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

module Data.Ix

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

newArray :: (MArray a e m, Ix i) => (i, i) -> e -> m (a i e) Исходный код

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

newArray_ :: (MArray a e m, Ix i) => (i, i) -> m (a i e) Исходный код

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

newListArray :: (MArray a e m, Ix i) => (i, i) -> [e] -> m (a i e) Исходный код

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

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

Создает изменяемый массив с использованием генераторной функции. Он вызывает генераторную функцию в порядке возрастания индексов.

Since: array-0.5.6.0

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

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

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

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

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

Since: array-0.5.6.0

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

Изменение элемента в изменяемом массиве. Строгий по отношению к записываемому элементу.

Since: array-0.5.6.0

Склады массивов

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

Строгая аккумулирующая левоассоциативная свертка.

Since: array-0.5.8.0

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

Строгая аккумулирующая правоассоциативная свертка.

Since: array-0.5.8.0

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

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

Since: array-0.5.8.0

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

forMArrayM_ это mapMArrayM_ со своими аргументами, поменянными местами.

Since: array-0.5.8.0

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

Строгая аккумулирующая левоассоциативная монадическая свертка.

Since: array-0.5.8.0

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

Строгая аккумулирующая правоассоциативная монадическая свертка.

Since: array-0.5.8.0

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

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

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

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

getBounds :: (MArray a e m, Ix i) => a i e -> m (i, i) 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/9.12.1/docs/libraries/array-0.5.8.0-8d84/Data-Array-MArray.html

Spec-Zone.ru

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