Haskellのcase of
は式であるため、値と同じように扱うことができます。
let var = 100
str = case var of
100 -> "Hundred"
_ -> "Otherwise"
ifと同じく、式の生成する値の型は一致させなければなりません。例えば、以下のコードはエラーとなります。
let var = 100
str = case var of
100 -> 100 -- 戻り値の型は Num a => a
_ -> "Otherwise" -- 戻り値の型は String