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