我有一个自定义数据类型,类似于:
data Token = Number Int
| Otherthings
我希望能够以一种方式使用“数字”,而以另一种方式使用其他事物。所以我可以成功地创建一个案例语句,如:
parse x = case x of
Number y -> y
然后成功地采取:
let x = Number 7 in parse x
并评估为 7。但是,当我尝试将“解析”函数更改为:
parse [] = []
parse (x:xs) = case x of
Number y -> y
我得到错误:
Couldn't match expected type `[a0]' with actual type `Int'
In the expression: y
In a case alternative: Number y -> y
In the expression: case x of { Number y -> y }
为什么这不起作用,解决这个问题的正确方法是什么?非常感谢!