Haskell lambda 函数 - 输入“)”时出现解析错误

Haskell lambda function - parse error on input ‘)’

我在 Haskell 中有以下代码,我想更改行

toNanoStmt (VarDeclStmt _ array)= SeqList (toNanoStmt (map (\(VarDecl _ (Id a x) (Just exp))) array ))

基本上我想通过创建一系列赋值语句来使用 VarDeclStmt。 SeqList 采用语句列表。我有 VarDecls 的列表!我再次使用映射将 varDeclArr 转换为分配列表。但是我收到这个错误:

输入‘)’出现解析错误

你的lambda-expression没有body。

参数后面必须有一个右箭头->,后面跟着body,例如:

addTwo = (\x -> x + 2)

所以在你的情况下你需要做这样的事情:

toNanoStmt (VarDeclStmt _ array)= SeqList (toNanoStmt (map (\(VarDecl _ (Id a x) (Just exp)) -> <body goes here>) array ))