这种类型是什么意思?

时间:2016-03-29 18:03:36

标签: haskell newtype

这是新类型:

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

我在理解这条线的许多事情时遇到了问题,但首先是大括号。它们是什么以及它们在这里做什么 - 从两种输入数据类型创建函数?

1 个答案:

答案 0 :(得分:4)

大括号允许记录语法。它可以被认为是以下方面的简写:

newtype Combine a b = Combine (a -> b)

unCombine :: Combine a b -> (a -> b)
unCombine (Combine a) = a

记录语法会自动为您创建unCombine函数,因此您无需自己定义它。当你的类型有很多类型参数时,它会派上用场。

相关问题