如何在Haskell中解析布尔表达式

1tuwyuhd  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(154)

我试图在Haskell中解析一个布尔表达式。这一行给了我一个错误:BoolExpr <$> parseBoolOp <*> (n : ns)。这是错误:
第一个
boolExpr需要一个Parser [Expr],但我只返回了一个[Expr]。是否有方法修复此问题或用其他方法?当我尝试pure(n:ns)时,evalStr "(and true (and false true) true)"返回Left (ParseError "'a' didn't match expected character")而不是Right (BoolVal False)

gopyfrb3

gopyfrb31#

表达式(n : ns)是一个列表,因此编译器认为应用运算符<*><$>应该在上下文[]中使用,而您需要的是Parser
我猜你需要的是pure (n : ns)

相关问题