我正在尝试实现一个简单的函数,它执行以下操作:它采用以下格式的元组(Int,a),如果第一个元素是 1(例如:(1,a)),那么它返回 a,否则它返回一个元组。这应该基于 CounterElem 数据类型。
这是我的代码:
data CounterElem a = Single a | Tuple (Int, a)
p11helper :: CounterElem c => (a, b) -> c
p11helper (1, x) = x
p11helper (y, x) = (y, x)
编译后,我收到一堆“与预期类型不匹配...”的错误。我认为这是初学者的错误,但因为我是初学者...... :)