maximumは空リストを取れない
*Main> maximum [1..5]
5
*Main> maximum []
*** Exception: Prelude.maximum: empty list
そこで、ちょっと工夫する
safemaximum :: Ord a => [Maybe a] -> Maybe a
safemaximum = maximum . (Nothing:)
使ってみる
*Main> safemaximum $ map Just [1..5]
Just 5
*Main> safemaximum []
Nothing

Bryan O'Sullivan,John Goerzen,Don Stewart
オライリージャパン / ¥ 3,990 ()
在庫あり。