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 中的類型類。它能夠被用來描述線性的有序類型。code

Bounded

class  Bounded a  where
    minBound, maxBound :: a

Bounded 是 Prelude 中的類型類。它能夠被用來描述帶邊界值的有序類型。class

示例

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 分別返回類型中的最大最小值
相關文章
相關標籤/搜索