如何定义一个接受我的类型并返回其原始“同义词”的函数?例如:
newtype MyInt = MakeInt Int
我想要一个功能:
unMyInt :: MakeInt -> Int
答案 0 :(得分:15)
另一种(有时更舒适的方式)是记录语法:
newtype myInt a = MyInt { unMyInt :: Int }
这会自动定义一个函数
unMyInt :: MyInt -> Int
答案 1 :(得分:6)
通过构造函数上的模式匹配:
unMyInt (MakeInt i) = i