我试图在Haskell中编写一个递归数据结构,以表示一个表达式树.我有这种数据类型:
data Expr =
And(Expr, Expr ) |
Or (Expr, Expr ) |
(/) Expr Expr
Run Code Online (Sandbox Code Playgroud)
我想模式匹配函数中的每个数据构造函数:
toStringE :: Expr -> String
toStringE e = case e of
And(a,b) -> "and(" ++ toStringE a ++ ", " ++ toStringE b ++ ")"
Or(a,b) -> "or(" ++ toStringE a ++ ", " ++ toStringE b ++ ")"
(/) expr1 expr2 -> (toStringE expr1) ++ " / " ++ (toStringE expr2)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试编译时,我在toStringE函数的最后一行得到了这个错误:
Parse error in pattern: (/)
Run Code Online (Sandbox Code Playgroud)
你觉得我做错了什么?
haskell ×1