GHC.Arr
| Авторские права | (c) Университет Глазго 1994-2000 |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Поддержка | ghc-devs@haskell.org |
| Стабильность | внутренняя |
| Переносимость | непереносимая (расширения GHC) |
| Безопасный Haskell | Нет |
| Язык | Haskell2010 |
Содержание
Описание
Реализация массивов GHC.
API этого модуля нестабильна и не предназначена для общего использования. Если вам абсолютно необходимо от него зависеть, убедитесь, что вы используете жёсткую верхнюю границу, например, base < 4.X , а не base < 5, так как интерфейс может быстро измениться без предупреждения.
class Ord a => Ix a where Исходный код
Класс Ix используется для отображения непрерывного поддиапазона значений в типе на целые числа. Он используется в основном для индексации массивов (см. пакет массивов).
Первый аргумент (l,u) каждой из этих операций — пара, определяющая нижнюю и верхнюю границы непрерывного поддиапазона значений.
Реализация имеет право предполагать следующие законы о данных операциях:
-
inRange (l,u) i == elem i (range (l,u)) -
range (l,u) !! index (l,u) i == i, когдаinRange (l,u) i -
map (index (l,u)) (range (l,u))) == [0..rangeSize (l,u)-1] -
rangeSize (l,u) == length (range (l,u))
Минимальное полное определение
range, (index | unsafeIndex), inRange
Методы
range :: (a, a) -> [a] Исходный код
Список значений в поддиапазоне, определяемом парой границ.
index :: (a, a) -> a -> Int Исходный код
Положение индекса в поддиапазоне.
unsafeIndex :: (a, a) -> a -> Int Исходный код
Как index, но без проверки, что значение находится в диапазоне.
inRange :: (a, a) -> a -> Bool Исходный код
Возвращает True, лежит ли данный индекс в диапазоне, определённом парой границ.
rangeSize :: (a, a) -> Int Исходный код
Размер поддиапазона, определяемого парой границ.
unsafeRangeSize :: (a, a) -> Int Исходный код
Как rangeSize, но без проверки, что верхняя граница находится в диапазоне.
Экземпляры
| Ix Void Источник | С версии: base-4.8.0.0 |
Определено в GHC.Internal.Ix | |
| Ix CBool Источник | |
Определено в GHC.Internal.Foreign.C.Types Методыrange :: (CBool, CBool) -> [CBool] Источник index :: (CBool, CBool) -> CBool -> Int Источник unsafeIndex :: (CBool, CBool) -> CBool -> Int Источник inRange :: (CBool, CBool) -> CBool -> Bool Источник rangeSize :: (CBool, CBool) -> Int Источник unsafeRangeSize :: (CBool, CBool) -> Int Источник | |
| Ix CChar Источник | |
Определено в GHC.Internal.Foreign.C.Types Методыrange :: (CChar, CChar) -> [CChar] Источник index :: (CChar, CChar) -> CChar -> Int Источник unsafeIndex :: (CChar, CChar) -> CChar -> Int Источник inRange :: (CChar, CChar) -> CChar -> Bool Источник rangeSize :: (CChar, CChar) -> Int Источник unsafeRangeSize :: (CChar, CChar) -> Int Источник | |
| Ix CInt Источник | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CBlkCnt, CBlkCnt) -> [CBlkCnt] Исходный код index :: (CBlkCnt, CBlkCnt) -> CBlkCnt -> Int Исходный код unsafeIndex :: (CBlkCnt, CBlkCnt) -> CBlkCnt -> Int Исходный код inRange :: (CBlkCnt, CBlkCnt) -> CBlkCnt -> Bool Исходный код rangeSize :: (CBlkCnt, CBlkCnt) -> Int Исходный код unsafeRangeSize :: (CBlkCnt, CBlkCnt) -> Int Исходный код | |
| Ix CBlkSize Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CBlkSize, CBlkSize) -> [CBlkSize] Исходный код index :: (CBlkSize, CBlkSize) -> CBlkSize -> Int Исходный код unsafeIndex :: (CBlkSize, CBlkSize) -> CBlkSize -> Int Исходный код inRange :: (CBlkSize, CBlkSize) -> CBlkSize -> Bool Исходный код rangeSize :: (CBlkSize, CBlkSize) -> Int Исходный код unsafeRangeSize :: (CBlkSize, CBlkSize) -> Int Исходный код | |
| Ix CClockId Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CClockId, CClockId) -> [CClockId] Исходный код index :: (CClockId, CClockId) -> CClockId -> Int Исходный код unsafeIndex :: (CClockId, CClockId) -> CClockId -> Int Исходный код inRange :: (CClockId, CClockId) -> CClockId -> Bool Исходный код rangeSize :: (CClockId, CClockId) -> Int Исходный код unsafeRangeSize :: (CClockId, CClockId) -> Int Исходный код | |
| Ix CDev Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CDev, CDev) -> [CDev] Исходный код index :: (CDev, CDev) -> CDev -> Int Исходный код unsafeIndex :: (CDev, CDev) -> CDev -> Int Исходный код inRange :: (CDev, CDev) -> CDev -> Bool Исходный код rangeSize :: (CDev, CDev) -> Int Исходный код unsafeRangeSize :: (CDev, CDev) -> Int Исходный код | |
| Ix CFsBlkCnt Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CFsBlkCnt, CFsBlkCnt) -> [CFsBlkCnt] Источник index :: (CFsBlkCnt, CFsBlkCnt) -> CFsBlkCnt -> Int Источник unsafeIndex :: (CFsBlkCnt, CFsBlkCnt) -> CFsBlkCnt -> Int Источник inRange :: (CFsBlkCnt, CFsBlkCnt) -> CFsBlkCnt -> Bool Источник rangeSize :: (CFsBlkCnt, CFsBlkCnt) -> Int Источник unsafeRangeSize :: (CFsBlkCnt, CFsBlkCnt) -> Int Источник | |
| Ix CFsFilCnt Источник | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CFsFilCnt, CFsFilCnt) -> [CFsFilCnt] Источник index :: (CFsFilCnt, CFsFilCnt) -> CFsFilCnt -> Int Источник unsafeIndex :: (CFsFilCnt, CFsFilCnt) -> CFsFilCnt -> Int Источник inRange :: (CFsFilCnt, CFsFilCnt) -> CFsFilCnt -> Bool Источник rangeSize :: (CFsFilCnt, CFsFilCnt) -> Int Источник unsafeRangeSize :: (CFsFilCnt, CFsFilCnt) -> Int Источник | |
| Ix CGid Источник | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CGid, CGid) -> [CGid] Исходный код index :: (CGid, CGid) -> CGid -> Int Исходный код unsafeIndex :: (CGid, CGid) -> CGid -> Int Исходный код inRange :: (CGid, CGid) -> CGid -> Bool Исходный код rangeSize :: (CGid, CGid) -> Int Исходный код unsafeRangeSize :: (CGid, CGid) -> Int Исходный код | |
| Ix CId Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CId, CId) -> [CId] Исходный код index :: (CId, CId) -> CId -> Int Исходный код unsafeIndex :: (CId, CId) -> CId -> Int Исходный код inRange :: (CId, CId) -> CId -> Bool Исходный код rangeSize :: (CId, CId) -> Int Исходный код unsafeRangeSize :: (CId, CId) -> Int Исходный код | |
| Ix CIno Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CIno, CIno) -> [CIno] Исходный код index :: (CIno, CIno) -> CIno -> Int Исходный код unsafeIndex :: (CIno, CIno) -> CIno -> Int Исходный код inRange :: (CIno, CIno) -> CIno -> Bool Исходный код rangeSize :: (CIno, CIno) -> Int Исходный код unsafeRangeSize :: (CIno, CIno) -> Int Исходный код | |
| Ix CKey Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CKey, CKey) -> [CKey] Исходный код index :: (CKey, CKey) -> CKey -> Int Исходный код unsafeIndex :: (CKey, CKey) -> CKey -> Int Исходный код inRange :: (CKey, CKey) -> CKey -> Bool Исходный код rangeSize :: (CKey, CKey) -> Int Исходный код unsafeRangeSize :: (CKey, CKey) -> Int Исходный код | |
| Ix CMode Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CMode, CMode) -> [CMode] Исходный код index :: (CMode, CMode) -> CMode -> Int Исходный код unsafeIndex :: (CMode, CMode) -> CMode -> Int Исходный код inRange :: (CMode, CMode) -> CMode -> Bool Исходный код rangeSize :: (CMode, CMode) -> Int Исходный код unsafeRangeSize :: (CMode, CMode) -> Int Исходный код | |
| Ix CNfds Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CNfds, CNfds) -> [CNfds] Исходный код index :: (CNfds, CNfds) -> CNfds -> Int Исходный код unsafeIndex :: (CNfds, CNfds) -> CNfds -> Int Исходный код inRange :: (CNfds, CNfds) -> CNfds -> Bool Исходный код rangeSize :: (CNfds, CNfds) -> Int Исходный код unsafeRangeSize :: (CNfds, CNfds) -> Int Исходный код | |
| Ix CNlink Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CNlink, CNlink) -> [CNlink] Исходный код index :: (CNlink, CNlink) -> CNlink -> Int Исходный код unsafeIndex :: (CNlink, CNlink) -> CNlink -> Int Исходный код inRange :: (CNlink, CNlink) -> CNlink -> Bool Исходный код rangeSize :: (CNlink, CNlink) -> Int Исходный код unsafeRangeSize :: (CNlink, CNlink) -> Int Исходный код | |
| Ix COff Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (COff, COff) -> [COff] Исходный код index :: (COff, COff) -> COff -> Int Исходный код unsafeIndex :: (COff, COff) -> COff -> Int Исходный код inRange :: (COff, COff) -> COff -> Bool Исходный код rangeSize :: (COff, COff) -> Int Исходный код unsafeRangeSize :: (COff, COff) -> Int Исходный код | |
| Ix CPid Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CPid, CPid) -> [CPid] Исходный код index :: (CPid, CPid) -> CPid -> Int Исходный код unsafeIndex :: (CPid, CPid) -> CPid -> Int Исходный код inRange :: (CPid, CPid) -> CPid -> Bool Исходный код rangeSize :: (CPid, CPid) -> Int Исходный код unsafeRangeSize :: (CPid, CPid) -> Int Исходный код | |
| Ix CRLim Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CRLim, CRLim) -> [CRLim] Исходный код index :: (CRLim, CRLim) -> CRLim -> Int Исходный код unsafeIndex :: (CRLim, CRLim) -> CRLim -> Int Исходный код inRange :: (CRLim, CRLim) -> CRLim -> Bool Исходный код rangeSize :: (CRLim, CRLim) -> Int Исходный код unsafeRangeSize :: (CRLim, CRLim) -> Int Исходный код | |
| Ix CSocklen Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CSocklen, CSocklen) -> [CSocklen] Исходный код index :: (CSocklen, CSocklen) -> CSocklen -> Int Исходный код unsafeIndex :: (CSocklen, CSocklen) -> CSocklen -> Int Исходный код inRange :: (CSocklen, CSocklen) -> CSocklen -> Bool Исходный код rangeSize :: (CSocklen, CSocklen) -> Int Исходный код unsafeRangeSize :: (CSocklen, CSocklen) -> Int Исходный код | |
| Ix CSsize Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CSsize, CSsize) -> [CSsize] Исходный код index :: (CSsize, CSsize) -> CSsize -> Int Исходный код unsafeIndex :: (CSsize, CSsize) -> CSsize -> Int Исходный код inRange :: (CSsize, CSsize) -> CSsize -> Bool Исходный код rangeSize :: (CSsize, CSsize) -> Int Исходный код unsafeRangeSize :: (CSsize, CSsize) -> Int Исходный код | |
| Ix CTcflag Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CTcflag, CTcflag) -> [CTcflag] Исходный код index :: (CTcflag, CTcflag) -> CTcflag -> Int Исходный код unsafeIndex :: (CTcflag, CTcflag) -> CTcflag -> Int Исходный код inRange :: (CTcflag, CTcflag) -> CTcflag -> Bool Исходный код rangeSize :: (CTcflag, CTcflag) -> Int Исходный код unsafeRangeSize :: (CTcflag, CTcflag) -> Int Исходный код | |
| Ix CUid Исходный код | |
Определено в GHC.Internal.System.Posix.Types Методыrange :: (CUid, CUid) -> [CUid] Исходный код index :: (CUid, CUid) -> CUid -> Int Исходный код unsafeIndex :: (CUid, CUid) -> CUid -> Int Исходный код inRange :: (CUid, CUid) -> CUid -> Bool Исходный код rangeSize :: (CUid, CUid) -> Int Исходный код unsafeRangeSize :: (CUid, CUid) -> Int Исходный код | |
| Ix Fd Исходный код | |
| Ix Word32 Source | Since: base-2.1 |
Определено в GHC.Internal.Word Методыrange :: (Word32, Word32) -> [Word32] Source index :: (Word32, Word32) -> Word32 -> Int Source unsafeIndex :: (Word32, Word32) -> Word32 -> Int Source inRange :: (Word32, Word32) -> Word32 -> Bool Source rangeSize :: (Word32, Word32) -> Int Source unsafeRangeSize :: (Word32, Word32) -> Int Source | |
| Ix Word64 Source | Since: base-2.1 |
Определено в GHC.Internal.Word Методыrange :: (Word64, Word64) -> [Word64] Source index :: (Word64, Word64) -> Word64 -> Int Source unsafeIndex :: (Word64, Word64) -> Word64 -> Int Source inRange :: (Word64, Word64) -> Word64 -> Bool Source rangeSize :: (Word64, Word64) -> Int Source unsafeRangeSize :: (Word64, Word64) -> Int Source | |
| Ix Word8 Source | Since: base-2.1 |
Определено в GHC.Internal.Word | |
| Ix Ordering Source | Since: base-2.1 |
Определено в GHC.Internal.Data.Functor.Const Краткое описание методовrange :: (Const a b, Const a b) -> [Const a b] Исходный код index :: (Const a b, Const a b) -> Const a b -> Int Исходный код unsafeIndex :: (Const a b, Const a b) -> Const a b -> Int Исходный код inRange :: (Const a b, Const a b) -> Const a b -> Bool Исходный код rangeSize :: (Const a b, Const a b) -> Int Исходный код unsafeRangeSize :: (Const a b, Const a b) -> Int Исходный код | |
| (Ix a1, Ix a2, Ix a3) => Ix (a1, a2, a3) Исходный код | С версии: base-2.1 |
Определено в GHC.Internal.Ix Краткое описание методовrange :: ((a1, a2, a3), (a1, a2, a3)) -> [(a1, a2, a3)] Исходный код index :: ((a1, a2, a3), (a1, a2, a3)) -> (a1, a2, a3) -> Int Исходный код unsafeIndex :: ((a1, a2, a3), (a1, a2, a3)) -> (a1, a2, a3) -> Int Исходный код inRange :: ((a1, a2, a3), (a1, a2, a3)) -> (a1, a2, a3) -> Bool Исходный код rangeSize :: ((a1, a2, a3), (a1, a2, a3)) -> Int Исходный код unsafeRangeSize :: ((a1, a2, a3), (a1, a2, a3)) -> Int Исходный код | |
| (Ix a1, Ix a2, Ix a3, Ix a4) => Ix (a1, a2, a3, a4) Исходный код | С версии: base-2.1 |
Определено в GHC.Internal.Ix Краткое описание методовrange :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> [(a1, a2, a3, a4)] Исходный код index :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> (a1, a2, a3, a4) -> Int Исходный код unsafeIndex :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> (a1, a2, a3, a4) -> Int Исходный код inRange :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> (a1, a2, a3, a4) -> Bool Исходный код rangeSize :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> Int Исходный код unsafeRangeSize :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> Int Исходный код | |
| (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5) => Ix (a1, a2, a3, a4, a5) Исходный код | С версии: base-2.1 |
Определено в GHC.Internal.Ix Краткое описание методовrange :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> [(a1, a2, a3, a4, a5)] Исходный код index :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> (a1, a2, a3, a4, a5) -> Int Исходный код unsafeIndex :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> (a1, a2, a3, a4, a5) -> Int Исходный код inRange :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> (a1, a2, a3, a4, a5) -> Bool Исходный код rangeSize :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> Int Исходный код unsafeRangeSize :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> Int Исходный код | |
| (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6) => Ix (a1, a2, a3, a4, a5, a6) Source | Since: base-4.15.0.0 |
Defined in GHC.Internal.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6), (a1, a2, a3, a4, a5, a6)) -> [(a1, a2, a3, a4, a5, a6)] Source index :: ((a1, a2, a3, a4, a5, a6), (a1, a2, a3, a4, a5, a6)) -> (a1, a2, a3, a4, a5, a6) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6), (a1, a2, a3, a4, a5, a6)) -> (a1, a2, a3, a4, a5, a6) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6), (a1, a2, a3, a4, a5, a6)) -> (a1, a2, a3, a4, a5, a6) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6), (a1, a2, a3, a4, a5, a6)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6), (a1, a2, a3, a4, a5, a6)) -> Int Source | |
| (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7) => Ix (a1, a2, a3, a4, a5, a6, a7) Source | Since: base-4.15.0.0 |
Defined in GHC.Internal.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6, a7), (a1, a2, a3, a4, a5, a6, a7)) -> [(a1, a2, a3, a4, a5, a6, a7)] Source index :: ((a1, a2, a3, a4, a5, a6, a7), (a1, a2, a3, a4, a5, a6, a7)) -> (a1, a2, a3, a4, a5, a6, a7) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7), (a1, a2, a3, a4, a5, a6, a7)) -> (a1, a2, a3, a4, a5, a6, a7) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6, a7), (a1, a2, a3, a4, a5, a6, a7)) -> (a1, a2, a3, a4, a5, a6, a7) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6, a7), (a1, a2, a3, a4, a5, a6, a7)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7), (a1, a2, a3, a4, a5, a6, a7)) -> Int Source | |
| (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8) => Ix (a1, a2, a3, a4, a5, a6, a7, a8) Source | Since: base-4.15.0.0 |
Defined in GHC.Internal.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6, a7, a8), (a1, a2, a3, a4, a5, a6, a7, a8)) -> [(a1, a2, a3, a4, a5, a6, a7, a8)] Source index :: ((a1, a2, a3, a4, a5, a6, a7, a8), (a1, a2, a3, a4, a5, a6, a7, a8)) -> (a1, a2, a3, a4, a5, a6, a7, a8) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8), (a1, a2, a3, a4, a5, a6, a7, a8)) -> (a1, a2, a3, a4, a5, a6, a7, a8) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8), (a1, a2, a3, a4, a5, a6, a7, a8)) -> (a1, a2, a3, a4, a5, a6, a7, a8) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8), (a1, a2, a3, a4, a5, a6, a7, a8)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8), (a1, a2, a3, a4, a5, a6, a7, a8)) -> Int Source | |
| (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9) Source | Since: base-4.15.0.0 |
Определено в GHC.Internal.Ix Методыrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9)] Исходный код index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> Целое Исходный код unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> Целое Исходный код inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> Булево Исходный код rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> Целое Исходный код unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> Целое Исходный код | |
| (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9, Ix aA) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA) Исходный код | С: base-4.15.0.0 |
Определено в GHC.Internal.Ix Методыrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)] Исходный код index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA) -> Целое Исходный код unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA) -> Целое Исходный код inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA) -> Булево Исходный код rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> Целое Исходный код unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> Целое Исходный код | |
| (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9, Ix aA, Ix aB) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB) Исходный код | С: base-4.15.0.0 |
Определено в GHC.Internal.Ix Методыrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)] Исходный код index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB) -> Целое Исходный код unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB) -> Целое Исходный код inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB) -> Булево Исходный код rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> Целое Исходный код unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> Целое Исходный код | |
| (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9, Ix aA, Ix aB, Ix aC) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC) Исходный код | С: base-4.15.0.0 |
Определено в GHC.Internal.Ix Методыrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)] Источник index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC) -> Int Источник unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC) -> Int Источник inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC) -> Bool Источник rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)) -> Int Источник unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)) -> Int Источник | |
| (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9, Ix aA, Ix aB, Ix aC) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC) Источник | С момента: base-4.15.0.0 |
Определено в GHC.Internal.Ix Методыrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)] Источник index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD) -> Int Источник unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD) -> Int Источник inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD) -> Bool Источник rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)) -> Int Источник unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)) -> Int Источник | |
| (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9, Ix aA, Ix aB, Ix aC, Ix aD) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD) Источник | С момента: base-4.15.0.0 |
Определено в GHC.Internal.Ix Методыrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)] Источник index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE) -> Int Источник unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE) -> Int Источник inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE) -> Bool Источник rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)) -> Int Источник unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)) -> Int Источник | |
| (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9, Ix aA, Ix aB, Ix aC, Ix aD, Ix aE, Ix aF) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF) Источник | С момента: base-4.15.0.0 |
Определено в GHC.Internal.Ix Методыrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)] Исходный код index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF) -> Int Исходный код unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF) -> Int Исходный код inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF) -> Bool Исходный код rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)) -> Int Исходный код unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)) -> Int Исходный код |
data Array i e Исходный код
Тип неизменяемых, нестрогих (упакованных) массивов с индексами в i и элементами в e.
Экземпляры
| Functor (Array i) Источник | С версии: base-2.1 |
| Foldable (Array i) Источник | С версии: base-4.8.0.0 |
Определено в 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 Источник | |
| Ix i => Traversable (Array i) Источник | С версии: base-2.1 |
Определено в GHC.Internal.Data.Traversable | |
| (Data a, Data b, Ix a) => Data (Array a b) Источник | С версии: base-4.8.0.0 |
Определено в GHC.Internal.Data.Data Методыgfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Array a b -> c (Array a b) Исходный код gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Array a b) Исходный код toConstr :: Array a b -> Constr Исходный код dataTypeOf :: Array a b -> DataType Исходный код dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Array a b)) Исходный код dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Array a b)) Исходный код gmapT :: (forall b0. Data b0 => b0 -> b0) -> Array a b -> Array a b Исходный код gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Array a b -> r Исходный код gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Array a b -> r Исходный код gmapQ :: (forall d. Data d => d -> u) -> Array a b -> [u] Исходный код gmapQi :: Int -> (forall d. Data d => d -> u) -> Array a b -> u Исходный код gmapM :: Monad m => (forall d. Data d => d -> m d) -> Array a b -> m (Array a b) Исходный код gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Array a b -> m (Array a b) Исходный код gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Array a b -> m (Array a b) Исходный код | |
| (Ix a, Read a, Read b) => Read (Array a b) Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Read МетодыreadsPrec :: Int -> ReadS (Array a b) Исходный код readList :: ReadS [Array a b] Исходный код readPrec :: ReadPrec (Array a b) Исходный код readListPrec :: ReadPrec [Array a b] Исходный код | |
| (Ix a, Show a, Show b) => Show (Array a b) Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Arr МетодыshowsPrec :: Int -> Array a b -> ShowS Исходный код show :: Array a b -> String Исходный код showList :: [Array a b] -> ShowS Исходный код | |
| (Ix i, Eq e) => Eq (Array i e) Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Arr Методы(==) :: Массив i e -> Массив i e -> Булево Исходный код (/=) :: Массив i e -> Массив i e -> Булево Исходный код | |
| (Ix i, Ord e) => Ord (Массив i e) Исходный код | С момента: base-2.1 |
Определено в 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 Исходный код | |
тип STМассив s i e Исходный код
Изменяемые, упакованные, нестрогие массивы в ST монаде. Аргументы типа следующие:
-
s: аргумент переменной состояния для типаST -
i: тип индекса массива (должен быть экземпляромIx) -
e: тип элементов массива.
Конструкторы
| STМассив !i !i !Целое (MutableArray# s e) |
Экземпляры
| Равенство (STМассив s i e) Исходный код | С момента: base-2.1 |
Определено в GHC.Internal.Arr Методы(==) :: STМассив s i e -> STМассив s i e -> Булево Исходный код (/=) :: STМассив s i e -> STМассив s i e -> Булево Исходный код | |
arrEleBottom :: a Исходный код
Аргументы
| :: Ix i | |
| => (i, i) | пара границ, каждая из которых имеет тип индекса массива. Эти границы — наименьший и наибольший индексы в массиве в указанном порядке. Например, вектор с началом от единицы длиной |
| -> [(i, e)] | список сопоставлений вида (индекс, значение). Обычно этот список выражается как выражение. Сопоставление |
| -> Массив i e |
Создаёт массив с указанными границами, содержащий значения для заданных индексов в этих границах.
Массив неопределён (т. е. нижний предел) в случае, если какой-либо индекс в списке выходит за границы. Доклад Haskell 2010 далее уточняет, что если какие-либо два сопоставления в списке имеют одинаковый индекс, то значение в этом индексе неопределённо (т. е. нижний предел). Однако в реализации GHC значение в таком индексе равно значению последнего сопоставления с этим индексом в списке.
Поскольку индексы должны проверяться на эти ошибки, array является строгим по отношению к аргументу границ и индексам списка сопоставлений, но нестрогим по отношению к значениям. Таким образом, возможны рекурсии, такие как следующая:
a = array (1,100) ((1,1) : [(i, i * a!(i-1)) | i <- [2..100]])
Не каждый индекс в границах массива должен присутствовать в списке сопоставлений, но значения, связанные с индексами, которые не появляются, будут неопределёнными (т. е. нижними пределами).
Если в любом измерении нижняя граница больше верхней границы, то массив является допустимым, но пустым. Индексирование пустого массива всегда приводит к ошибке границ массива, но bounds всё равно возвращает границы, с которыми был создан массив.
listArray :: Ix i => (i, i) -> [e] -> Массив i e Исходный код
Создаёт массив из пары границ и списка значений в порядке индексов.
(!) :: Ix i => Массив i e -> i -> e infixl 9 Исходный код
Значение по заданному индексу в массиве.
safeRangeSize :: Ix i => (i, i) -> Целое Исходный код
safeIndex :: Ix i => (i, i) -> Int -> i -> Int Source
Аргументы
| :: Int | Индекс, искомый для поиска. |
| -> Int | Максимальная граница массива. |
| -> Int | Это не Int. Это исключение. |
Используется для выброса исключений в функциях проверки границ массива.
⚠ Эта функция выбрасывает SomeException во всех случаях.
Примеры
>>> badSafeIndex 2 5 *** Exception: Error in array index; 2 not in range [0..5)
bounds :: Array i e -> (i, i) Source
Границы, с которыми был создан массив.
numElements :: Array i e -> Int Source
Количество элементов в массиве.
numElementsSTArray :: STArray s i e -> Int Source
indices :: Ix i => Array i e -> [i] Source
Список индексов массива в порядке возрастания.
elems :: Array i e -> [e] Source
Список элементов массива в порядке индексов.
assocs :: Ix i => Array i e -> [(i, e)] Source
Список ассоциаций массива в порядке индексов.
Аргументы
| :: Ix i | |
| => (e -> a -> e) | Функция накопления |
| -> e | начальное значение |
| -> (i, i) | границы массива |
| -> [(i, a)] | список ассоциаций |
| -> Array i e |
Функция accumArray обрабатывает повторяющиеся индексы в списке ассоциаций, используя функцию накопления, которая объединяет значения ассоциаций с одинаковым индексом.
Например, задан список значений некоторого типа индексов, hist генерирует гистограмму количества появлений каждого индекса в заданном диапазоне:
hist :: (Ix a, Num b) => (a,a) -> [a] -> Array a b hist bnds is = accumArray (+) 0 bnds [(i, 1) | i<-is, inRange bnds i]
accumArray строго для каждого результата применения функции накопления, хотя она ленива для начального значения. Таким образом, в отличие от массивов, созданных с помощью array, накопленные массивы обычно не должны быть рекурсивными.
adjust :: (e -> a -> e) -> MutableArray# s e -> (Int, a) -> STRep s b -> STRep s b Source
(//) :: Ix i => Array i e -> [(i, e)] -> Array i e infixl 9 Source
Создает массив, идентичный первому аргументу, за исключением того, что он был обновлён ассоциациями в правом аргументе. Например, если m является 1-начальным, n матрицей n, то
m//[((i,i), 0) | i <- [1..n]]
является той же матрицей, за исключением того, что диагональ обнулена.
Повторяющиеся индексы в списке ассоциаций обрабатываются так же, как и для array: Haskell 2010 указывает, что результирующий массив неопределён (т.е. bottom), но реализация GHC использует последнюю ассоциацию для каждого индекса.
accum :: Ix i => (e -> a -> e) -> Array i e -> [(i, a)] -> Array i e Source
accum f принимает массив и список ассоциаций и накапливает пары из списка в массив с помощью функции накопления f. Таким образом, accumArray может быть определён с помощью accum:
accumArray f z b = accum f (array b [(i, z) | i <- range b])
accum строго для всех результатов применения функции накопления. Однако она ленива для начальных значений массива.
amap :: (a -> b) -> Array i a -> Array i b Source
ixmap :: (Ix i, Ix j) => (i, i) -> (i -> j) -> Array j e -> Array i e Source
ixmap позволяет выполнять преобразования над индексами массива. Его можно рассматривать как применение функции композиции справа к отображению, которое воплощает исходный массив.
Аналогичное преобразование значений массива может быть достигнуто с помощью fmap из Array экземпляра Functor класса.
eqArray :: (Ix i, Eq e) => Array i e -> Array i e -> Bool Source
cmpArray :: (Ix i, Ord e) => Array i e -> Array i e -> Ordering Source
cmpIntArray :: Ord e => Array Int e -> Array Int e -> Ordering Source
newSTArray :: Ix i => (i, i) -> e -> ST s (STArray s i e) Source
boundsSTArray :: STArray s i e -> (i, i) Source
readSTArray :: Ix i => STArray s i e -> i -> ST s e Source
writeSTArray :: Ix i => STArray s i e -> i -> e -> ST s () Source
freezeSTArray :: STArray s i e -> ST s (Array i e) Source
thawSTArray :: Array i e -> ST s (STArray s i e) Source
foldlElems :: (b -> a -> b) -> b -> Array i a -> b Source
Левостороннее свёртка по элементам
foldlElems' :: (b -> a -> b) -> b -> Array i a -> b Source
Строгая левосторонняя свёртка по элементам
foldl1Elems :: (a -> a -> a) -> Array i a -> a Source
Левосторонняя свёртка по элементам без начального значения
foldrElems :: (a -> b -> b) -> b -> Array i a -> b Source
Правосторонняя свёртка по элементам
foldrElems' :: (a -> b -> b) -> b -> Array i a -> b Source
Строгая правосторонняя свёртка по элементам
foldr1Elems :: (a -> a -> a) -> Array i a -> a Source
Правосторонняя свёртка по элементам без начального значения
Небезопасные операции
fill :: MutableArray# s e -> (Int, e) -> STRep s a -> STRep s a Source
done :: i -> i -> Int -> MutableArray# s e -> STRep s (Array i e) Source
unsafeArray :: Ix i => (i, i) -> [(Int, e)] -> Array i e Source
unsafeArray' :: (i, i) -> Int -> [(Int, e)] -> Array i e Source
lessSafeIndex :: Ix i => (i, i) -> Int -> i -> Int Source
unsafeAt :: Array i e -> Int -> e Source
unsafeReplace :: Array i e -> [(Int, e)] -> Array i e Source
unsafeAccumArray :: Ix i => (e -> a -> e) -> e -> (i, i) -> [(Int, a)] -> Array i e Source
unsafeAccumArray' :: (e -> a -> e) -> e -> (i, i) -> Int -> [(Int, a)] -> Array i e Source
unsafeAccum :: (e -> a -> e) -> Array i e -> [(Int, a)] -> Array i e Source
unsafeReadSTArray :: STArray s i e -> Int -> ST s e Source
unsafeWriteSTArray :: STArray s i e -> Int -> e -> ST s () Source
unsafeFreezeSTArray :: STArray s i e -> ST s (Array i e) Source
unsafeThawSTArray :: Array i e -> ST s (STArray s i e) Source
© 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/base-4.21.0.0-8e62/GHC-Arr.html