練習問題 4.1.2
以下のインスタンス宣言を完成せよ.
instance Ord a => Ord [a] where
...
第2章で具体的な型
[Char]の順序を考えたことを思い出してもらいたい.文字列の順序は辞書順である.リストに共通する
<=の定義も辞書順である.
instance Ord a => Ord [a] where
[] <= _ = True
_ <= [] = False
(x:xs) <= (y:ys)
| x == y = xs <= ys
| x <= y = True
| otherwise = False