У меня есть следующий код на Haskell, и я хочу изменить строку
toNanoStmt (VarDeclStmt _ array)= SeqList (toNanoStmt (map (\(VarDecl _ (Id a x) (Just exp))) array ))
По сути, я хочу использовать VarDeclStmt, создав последовательность операторов присваивания. SeqList принимает список операторов. У меня есть список VarDecls! И я снова использую карту для преобразования varDeclArr в список назначений. Но я получаю эту ошибку:
ошибка синтаксического анализа на вводе ‘)’





Ваше лямбда-выражение не имеет тела.
После параметров должна идти стрелка вправо ->, за которой следует тело, например:
addTwo = (\x -> x + 2)
Итак, в вашем случае вам нужно сделать что-то вроде этого:
toNanoStmt (VarDeclStmt _ array)= SeqList (toNanoStmt (map (\(VarDecl _ (Id a x) (Just exp)) -> <body goes here>) array ))
И лямбда, вероятно, должна обрабатывать
Nothingтак же, какJust exp.