Data.Ix
| Авторские права | (с) Университет Глазго 2001 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | libraries@haskell.org |
| Стабильность | стабильная |
| Портируемость | портируемая |
| Безопасный Haskell | Безопасный |
| Язык | Haskell2010 |
Содержание
Описание
Класс Ix используется для отображения непрерывного поддиапазона значений в типе на целые числа. Он используется в основном для индексации массивов (см. пакет array). Ix использует порядок строк.
Класс Ix
class Ord a => Ix a where Источник
Класс Ix используется для отображения непрерывного поддиапазона значений в типе на целые числа. Он используется в основном для индексации массивов (см. пакет array).
Первый аргумент (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 Источник
Позиция индекса в поддиапазоне.
inRange :: (a, a) -> a -> Bool Источник
Возвращает True, находится ли данный индекс в диапазоне, определенном парой границ.
rangeSize :: (a, a) -> Int Источник
Размер поддиапазона, определяемого парой границ.
Экземпляры
| 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 Методыrange :: ((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 Методыrange :: ((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 Методыrange :: ((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) -> Int Источник 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) -> Int Источник 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) -> Bool Источник rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> Int Источник unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> Int Источник | |
| (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) -> Int Источник 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) -> Int Источник 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) -> Bool Источник rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> Int Источник unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> Int Источник | |
| (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) -> Int Источник 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) -> Int Источник 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) -> Bool Источник rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> Int Источник unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> 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), (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) -> Целое Исходный код 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) -> Целое Исходный код 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) -> Булево Исходный код 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)) -> Целое Исходный код 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)) -> Целое Исходный код | |
| (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), (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) -> Целое Исходный код 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) -> Целое Исходный код 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) -> Булево Исходный код 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)) -> Целое Исходный код 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)) -> Целое Исходный код | |
| (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 (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE) Исходный код | С момента: 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) -> Целое Исходный код 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) -> Целое Исходный код 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) -> Булево Исходный код 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)) -> Целое Исходный код 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)) -> Целое Исходный код | |
| (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 Исходный код |
Вывод экземпляров Ix
Объявления производных экземпляров для класса Ix возможны только для перечислений (т.е. типов данных, имеющих только нульарные конструкторы) и типов данных с единственным конструктором, включая произвольно большие кортежи, составляющие типы которых являются экземплярами Ix.
- Для перечисления нульарные конструкторы предполагаются пронумерованными слева направо с индексами от 0 до n-1 включительно. Это то же нумерация, что и в классе
Enum. Например, для типа данных:
data Colour = Red | Orange | Yellow | Green | Blue | Indigo | Violet
у нас будет:
range (Yellow,Blue) == [Yellow,Green,Blue]
index (Yellow,Blue) Green == 1
inRange (Yellow,Blue) Red == False
- Для типов данных с единственным конструктором объявления производных экземпляров приведены как показано для кортежей в главе 19, разделе 2 отчета Haskell 2010: https://www.haskell.org/onlinereport/haskell2010/haskellch19.html.
© 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/Data-Ix.html