| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Data.Ix
Contents
Description
The Ix class
The Ix class is used to map a contiguous subrange of values in a type onto integers. It is used primarily
for array indexing (see the array package).
The first argument (l,u) of each of these operations is a pair specifying the lower and upper bounds
of a contiguous subrange of values.
An implementation is entitled to assume the following laws about these operations:
inRange (l,u) i == elem i (range (l,u))
range (l,u) !! index (l,u) i == i, when inRange (l,u) i
map (index (l,u)) (range (l,u))) == [0..rangeSize (l,u)-1]
rangeSize (l,u) == length (range (l,u))
Minimal complete instance: range, index and inRange.
Methods
The list of values in the subrange defined by a bounding pair.
The position of a subscript in the subrange.
inRange :: (a, a) -> a -> Bool #
Returns True the given subscript lies in the range defined the bounding pair.
The size of the subrange defined by a bounding pair.
Instances
| Ix Bool # | |
| Ix GeneralCategory # | |
Defined in Data.Char Methods range :: (GeneralCategory, GeneralCategory) -> [GeneralCategory] # index :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Int # inRange :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Bool # rangeSize :: (GeneralCategory, GeneralCategory) -> Int # | |
| Ix Int # | |
| Ix Int16 # | |
| Ix Int32 # | |
| Ix Int64 # | |
| Ix Int8 # | |
| Ix Ordering # | |
| Ix Word # | |
| Ix Word16 # | |
| Ix Word32 # | |
| Ix Word64 # | |
| Ix Word8 # | |
| Ix Char # | |
| Ix Integer # | |
| Ix IOMode # | |
| Ix SeekMode # | |
| Ix () # | |
| (Ix a, Ix b) => Ix (a, b) # | |
| (Ix a1, Ix a2, Ix a3) => Ix (a1, a2, a3) # | |
| (Ix a1, Ix a2, Ix a3, Ix a4) => Ix (a1, a2, a3, a4) # | |
Defined in Data.Ix | |
| (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5) => Ix (a1, a2, a3, a4, a5) # | |
Defined in Data.Ix Methods 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 # 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 # | |