Idiomatic way to sum a list of Maybe Int in haskell

后端 未结 5 2063
粉色の甜心
粉色の甜心 2021-02-07 07:04

Is there a more idiomatic way to implement the following? I feel like I\'m missing a way to get rid of the lambda, but couldn\'t figure out a way to convert it to point-free. Ma

5条回答
  •  渐次进展
    2021-02-07 07:49

    I'd just use sequence from Control.Monad:

    > fmap sum $ sequence [Just 3, Just 4]
    Just 7
    > fmap sum $ sequence [Just 3, Just 4, Nothing]
    Nothing
    

    For the point-free form:

    sumMaybe :: Num a => [Maybe a] -> Maybe a
    sumMaybe = fmap sum . sequence
    

提交回复
热议问题