假设我在 Haskell 中有这样的数据类型:
data Token = THEN AlexPosn
| ELSE AlexPosn
从亚历克斯,我明白了:
data AlexPosn = AlexPn !Int !Int !Int
deriving (Eq,Show)
我可以像这样进行模式匹配:
eat_token :: Token -> [Token] -> [Token]
eat_token (THEN p1)((THEN p2):rest) = rest
eat_token (ELSE p1)((ELSE p2):rest) = rest
但我真正想在这里完成的是:
eat_token (_ p) tk2 = error "Syntax Error at:"++(show p)
但是,我得到:
Parse error in pattern.
有什么建议么?