假設我有一個數據類型在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.
有什麼建議?
編寫從不同的令牌中提取AlexPosn領域的功能。 – Ingo 2012-02-27 01:03:36