Description
The Ix
class is used to map a contiguous subrange of values in type onto integers. It is used primarily for array indexing (see the array package).
Ix
class
class Ord a => Ix a whereSource
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.
index :: (a, a) -> a -> IntSource
The position of a subscript in the subrange.
inRange :: (a, a) -> a -> BoolSource
Returns True
the given subscript lies in the range defined the bounding pair.
rangeSize :: (a, a) -> IntSource
The size of the subrange defined by a bounding pair.
Instances
Ix Bool Ix Char Ix Int Ix Int8 Ix Int16 Ix Int32 Ix Int64 Ix Integer Ix Ordering Ix Word Ix Word8 Ix Word16 Ix Word32 Ix Word64 Ix () Ix IOMode Ix SeekMode Ix GeneralCategory (Ord (a, b), Ix a, Ix b) => Ix (a, b) (Ord (a1, a2, a3), Ix a1, Ix a2, Ix a3) => Ix (a1, a2, a3) (Ord (a1, a2, a3, a4), Ix a1, Ix a2, Ix a3, Ix a4) => Ix (a1, a2, a3, a4) (Ord (a1, a2, a3, a4, a5), Ix a1, Ix a2, Ix a3, Ix a4, Ix a5) => Ix (a1, a2, a3, a4, a5) Deriving Instances ofIx
Derived instance declarations for the class Ix
are only possible for enumerations (i.e. datatypes having only nullary constructors) and single-constructor datatypes, including arbitrarily large tuples, whose constituent types are instances of Ix
.
Enum
class. For example, given the datatype:data Colour = Red | Orange | Yellow | Green | Blue | Indigo | Violet
we would have:
range (Yellow,Blue) == [Yellow,Green,Blue] index (Yellow,Blue) Green == 1 inRange (Yellow,Blue) Red == False
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4