如何使用数据类型包含函数

时间:2017-06-28 06:38:01

标签: haskell

我有以下数据类型定义:

newtype Combine a b = 
  Combine { unCombine :: a -> b }

然后我可以定义如下:

Prelude> let f = Combine $ \n -> Sum (n + 1)

我的问题是,如何使用f

1 个答案:

答案 0 :(得分:7)

Prelude Data.Monoid> unCombine f 1
Sum {getSum = 2}
Prelude Data.Monoid> unCombine f 42
Sum {getSum = 43}