我收到一个匹配错误:
表达式:parseExpr (append pe) es
术语:parseExpr
类型:Expr -> 字符串
不匹配:a -> b -> c
当我尝试在标记行中执行此代码时:
data Expr = Atom String | Var String | Pred String [Expr] | Expr String
append :: String -> String -> String
append a b = a++b
parseExpr :: Expr -> String
parseExpr (Atom a) = a
parseExpr (Var x) = x
parseExpr (Pred p (e:es)) = parseExpr (append p e) es -- ERROR HERE
尽管 e 始终是我上面提到的 Expr 对象定义中的字符串。有没有办法说明这一点?