data BoolLit = T | F
instance Eq BoolLit where
b1 == b2 = True
data BExp = BoolLit |
Or BExp BExp
bEval :: BExp -> BoolLit
bEval T = T
我得到以下语法错误:语法错误模式匹配代数数据类型
Couldn't match expected type 'BExp' with actual type 'BoolLit'
In the pattern: T
In an equation for 'bEval': bEval T = T
的数据声明宣布,BoolLit是BExp。
所以,我不明白为什么哈斯克尔给出了一个错误。
我想知道为什么以及如何纠正它。
谢谢。
这是一个类型的错误,而不是一个语法错误。 – 2015-04-03 15:31:44