Haskell语言学习笔记(94)Enum Bounded
Enum
class Enum a where
succ, pred :: a -> a
toEnum :: Int -> a
fromEnum :: a -> Int
enumFrom :: a -> [a] -- [n..]
enumFromThen :: a -> a -> [a] -- [n,n'..]
enumFromTo :: a -> a -> [a] -- [n..m]
enumFromThenTo :: a -> a -> a -> [a] -- [n,n'..m]
Enum 是 Prelude 中的类型类。它可以被用来描述线性的有序类型。
Bounded
class Bounded a where
minBound, maxBound :: a
Bounded 是 Prelude 中的类型类。它可以被用来描述带边界值的有序类型。
示例
Prelude> data XXX = AA|BB|CC|DD|EE|FF deriving (Bounded, Enum, Show)
Prelude> succ AA
BB
Prelude> pred DD
CC
Prelude> fromEnum CC
2
Prelude> toEnum 3 :: XXX
DD
Prelude> enumFrom CC -- [CC ..]
[CC,DD,EE,FF]
Prelude> enumFromThen AA CC -- [AA,CC ..]
[AA,CC,EE]
Prelude> enumFromTo AA DD -- [AA .. DD]
[AA,BB,CC,DD]
Prelude> enumFromThenTo AA CC FF -- [AA,CC .. FF]
[AA,CC,EE]
Prelude> toEnum 48 :: Char
'0'
Prelude> fromEnum 'a'
97
Prelude> minBound :: XXX
AA
Prelude> maxBound :: XXX
FF
- pred succ
分别返回Enum中某个值的前一个值和后一个值 - fromEnum toEnum
Enum中的值与整数之间的相互转换。 - enumFrom...
返回Enum中值的序列 - minBound maxBound
分别返回类型中的最大最小值