X-Git-Url: http://git.tomasm.cz/fp.git/blobdiff_plain/2df2a815f76afa2daee4c7c5494e15795876003e..e9fefc72cffd266f05269f87992606365f8bd57a:/src/Lambda.hs 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