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) | |
| 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 elem :: Eq a => a -> Array i a -> Bool maximum :: Ord a => Array i a -> a minimum :: Ord a => Array i a -> a | |
| Ix i => Traversable (Array i) | |
| (Ix a, Read a, Read b) => Read (Array a b) | |
| (Ix a, Show a, Show b) => Show (Массив a b) | |
| (Ix i, Eq e) => Eq (Массив i e) | |
| (Ix i, Ord e) => Ord (Массив 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]
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