有没有更简洁的方式来编写这个简单的代码片段?

时间:2018-03-04 13:02:09

标签: haskell

所以我正在尝试学习haskell,在玩Maybe类型时,我想出了这个简单的代码片段

import Data.Maybe
betterDouble :: Maybe Int -> Maybe Int
betterDouble x =
    case x of
         Just y -> Just (y * 2)
         Nothing -> Nothing

这看起来很笨拙而且冗长。我不能帮助,但觉得有更简洁的方式在haskell写这个。我可以重写代码块的惯用或简洁方法是什么?

1 个答案:

答案 0 :(得分:7)

由于Maybe是一个Functor,您可以使用fmap来映射其内容:

betterDouble = fmap (* 2)