Data.Array
| Авторские права | (c) The University of Glasgow 2001 |
|---|---|
| Лицензия | BSD-style (см. файл libraries/base/LICENSE) |
| Сопровождающий | libraries@haskell.org |
| Стабильность | предварительная |
| Переносимость | переносимая |
| Безопасный Haskell | Trustworthy |
| Язык | 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 i, Eq e) => Eq (Array i e) | |
| (Ix i, Ord e) => Ord (Array i e) | |
Определён в GHC.Internal.Arr | |
| (Ix a, Read a, Read b) => Read (Array a b) | |
| (Ix a, Show a, Show b) => Show (Array a b) | |
Создание массивов
array :: Ix i => (i, i) -> [(i, e)] -> Array i e
listArray :: Ix i => (i, i) -> [e] -> Array i e
accumArray :: Ix i => (e -> a -> e) -> e -> (i, i) -> [(i, a)] -> Array i e
Доступ к массивам
(!) :: Ix i => Array i e -> i -> e
indices :: Ix i => Array i e -> [i]
assocs :: Ix i => Array i e -> [(i, e)]
Пошаговое обновление массивов
(//) :: Ix i => Array i e -> [(i, e)] -> Array i e
accum :: Ix i => (e -> a -> e) -> Array i e -> [(i, a)] -> Array i e
Производные массивы
ixmap :: (Ix i, Ix j) => (i, i) -> (i -> j) -> Array j e -> Array 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.14.1/docs/libraries/array-0.5.8.0-93e8/Data-Array.html