X-Git-Url: http://git.tomasm.cz/fp.git/blobdiff_plain/e0da0730ff4b328909789806b1d65b89eeb3b84b..e9fefc72cffd266f05269f87992606365f8bd57a:/src/Lambda.hs?ds=inline diff --git a/src/Lambda.hs b/src/Lambda.hs index 5165bb8..f9fbe2b 100644 --- a/src/Lambda.hs +++ b/src/Lambda.hs @@ -28,10 +28,15 @@ parseVar = do parseLambda :: Parser Term parseLambda = do char '\\' - (Var x) <- parseVar + vars <- many1 (parseVar <* char ' ') char '.' t <- parseTerm - return $! Lambda x t + return $! createLambda vars t + +createLambda :: [Term] -> Term -> Term +createLambda (Var x : vs) t = Lambda x $ createLambda vs t +createLambda [] t = t +createLambda _ _ = error "createLambda failed" parseApp :: Parser Term parseApp = do