HaskellのfromEnumとtoEnumのまとめ

今更だけど.

toEnum および fromEnum 演算子は列挙された値と Int 間の写像である。toEnum は Int の 引数が構成子のインデックスの一つでなければ、実行時エラーを起す。

http://www.sampou.org/haskell/report-revised-j/derived.html

こんなふうになる。

data  Color = Red | Orange | Yellow | Green  deriving (Enum)

[Orange ..]         ==  [Orange, Yellow, Green]
fromEnum Yellow     ==  2

数字に対してfromEnumするとその数字がそのまま帰る.

> fromEnum 11
11
> fromEnum 111
111

文字に対してfromEnumすると文字コードが変える.

> fromEnum 'A'
65
> fromEnum 'a'
97