Spec-Zone.ru › Haskell 9

Data.Array

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

Содержание

  • Неизменяемые нестрогие массивы
  • Создание массивов
  • Доступ к массивам
  • Инкрементные обновления массивов
  • Производные массивы

Описание

Базовые нестрогие массивы.

Примечание: Модуль Data.Array.IArray предоставляет более общий интерфейс для неизменяемых массивов: он определяет операции с теми же названиями, что и определенные ниже, но с более общими типами, а также определяет Array экземпляры соответствующих классов. Для использования этого более общего интерфейса импортируйте Data.Array.IArray, но не Data.Array.

Неизменяемые нестрогие массивы

Haskell предоставляет индексируемые массивы, которые можно рассматривать как функции, области определения которых изоморфны смежным подмножествам целых чисел. Функции, ограниченные таким образом, могут быть реализованы эффективно; в частности, программист может разумно ожидать быстрого доступа к компонентам. Для обеспечения возможности такой реализации массивы обрабатываются как данные, а не как общие функции.

Поскольку большинство функций массивов связаны с классом Ix, этот модуль экспортируется из Data.Array, чтобы модулям не нужно было импортировать как Data.Array, так и Data.Ix.

module Data.Ix

data Array i e

Экземпляры
Подробности об экземплярах
IArray Array e Источник
Подробности об экземпляре

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

Методы

bounds :: Ix i => Array i e -> (i, i) Источник

numElements :: Ix i => Array i e -> Int Источник

unsafeArray :: Ix i => (i, i) -> [(Int, e)] -> Array i e Источник

unsafeAt :: Ix i => Array i e -> Int -> e Источник

unsafeReplace :: Ix i => Array i e -> [(Int, e)] -> Array i e Источник

unsafeAccum :: Ix i => (e -> e' -> e) -> Array i e -> [(Int, e')] -> Array i e Источник

unsafeAccumArray :: Ix i => (e -> e' -> e) -> e -> (i, i) -> [(Int, e')] -> Array i e Источник

Functor (Array i)
Подробности об экземпляре

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

Методы

fmap :: (a -> b) -> Array i a -> Array i b

(<$) :: a -> Array i b -> Array i a

Foldable (Array i)
Подробности об экземпляре

Определено в GHC.Internal.Data.Foldable

Методы

fold :: Monoid m => Array i m -> m

foldMap :: Monoid m => (a -> m) -> Array i a -> m

foldMap' :: Monoid m => (a -> m) -> Array i a -> m

foldr :: (a -> b -> b) -> b -> Array i a -> b

foldr' :: (a -> b -> b) -> b -> Array i a -> b

foldl :: (b -> a -> b) -> b -> Array i a -> b

foldl' :: (b -> a -> b) -> b -> Array i a -> b

foldr1 :: (a -> a -> a) -> Array i a -> a

foldl1 :: (a -> a -> a) -> Array i a -> a

toList :: Array i a -> [a]

null :: Array i a -> Bool

length :: Array i a -> Int

elem :: Eq a => a -> Array i a -> Bool

maximum :: Ord a => Array i a -> a

minimum :: Ord a => Array i a -> a

sum :: Num a => Array i a -> a

product :: Num a => Array i a -> a

Ix i => Traversable (Array i)
Подробности об экземпляре

Определено в GHC.Internal.Data.Traversable

Методы

traverse :: Applicative f => (a -> f b) -> Array i a -> f (Array i b)

sequenceA :: Applicative f => Array i (f a) -> f (Array i a)

mapM :: Monad m => (a -> m b) -> Array i a -> m (Array i b)

sequence :: Monad m => Array i (m a) -> m (Array i a)

(Ix a, Read a, Read b) => Read (Array a b)
Подробности экземпляра

Определено в GHC.Internal.Read

Методы

readsPrec :: Int -> ReadS (Массив a b)

readList :: ReadS [Массив a b]

readPrec :: ReadPrec (Массив a b)

readListPrec :: ReadPrec [Массив a b]

(Ix a, Show a, Show b) => Show (Массив a b)
Подробности экземпляра

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

Методы

showsPrec :: Int -> Массив a b -> ShowS

show :: Массив a b -> Строка

showList :: [Массив a b] -> ShowS

(Ix i, Eq e) => Eq (Массив i e)
Подробности экземпляра

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

Методы

(==) :: Массив i e -> Массив i e -> Булево

(/=) :: Массив i e -> Массив i e -> Булево

(Ix i, Ord e) => Ord (Массив i e)
Подробности экземпляра

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

Методы

compare :: Массив i e -> Массив i e -> Порядок

(<) :: Массив i e -> Массив i e -> Булево

(<=) :: Массив i e -> Массив i e -> Булево

(>) :: Массив i e -> Массив i e -> Булево

(>=) :: Массив i e -> Массив i e -> Булево

max :: Массив i e -> Массив i e -> Массив i e

min :: Массив i e -> Массив i e -> Массив i e

Создание массивов

array :: Ix i => (i, i) -> [(i, e)] -> Массив i e

listArray :: Ix i => (i, i) -> [e] -> Массив i e

accumArray :: Ix i => (e -> a -> e) -> e -> (i, i) -> [(i, a)] -> Массив i e

Доступ к массивам

(!) :: Ix i => Массив i e -> i -> e

bounds :: Массив i e -> (i, i)

indices :: Ix i => Массив i e -> [i]

elems :: Массив i e -> [e]

assocs :: Ix i => Массив i e -> [(i, e)]

Инкрементные обновления массива

(//) :: Ix i => Массив i e -> [(i, e)] -> Массив i e

accum :: Ix i => (e -> a -> e) -> Массив i e -> [(i, a)] -> Массив i e

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

ixmap :: (Ix i, Ix j) => (i, i) -> (i -> j) -> Массив j e -> Массив i e

© 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.html

Spec-Zone.ru

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