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
Real World Haskell―実戦で学ぶ関数型言語プログラミング
Bryan O'Sullivan,John Goerzen,Don Stewart
オライリージャパン / ¥ 3,990 ()
在庫あり。
Bryan O'Sullivan,John Goerzen,Don Stewart
オライリージャパン / ¥ 3,990 ()
在庫あり。