反向数据构造函数

时间:2010-09-27 23:23:48

标签: haskell

如何定义一个接受我的类型并返回其原始“同义词”的函数?例如:

newtype MyInt = MakeInt Int

我想要一个功能:

unMyInt :: MakeInt -> Int

2 个答案:

答案 0 :(得分:15)

另一种(有时更舒适的方式)是记录语法:

newtype myInt a = MyInt { unMyInt :: Int }

这会自动定义一个函数

unMyInt :: MyInt -> Int

答案 1 :(得分:6)

通过构造函数上的模式匹配:

unMyInt (MakeInt i) = i