From 551f74a3f77d5f0b7b5221fa38ef67df5790083f Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Thu, 14 Nov 2019 17:31:23 +0100 Subject: Implement 'let' --- AST.hs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'AST.hs') diff --git a/AST.hs b/AST.hs index eae5af8..df946dd 100644 --- a/AST.hs +++ b/AST.hs @@ -14,6 +14,7 @@ data Value | VName Name | VQuoted Value | VLambda [Name] Value + | VLet [(Name, Value)] Value | VBuiltin String | VEllipsis deriving (Eq) @@ -29,6 +30,7 @@ instance Show Value where show (VName n) = n show (VQuoted e) = '\'' : show e show (VLambda as v) = "(lambda (" ++ intercalate " " as ++ ") " ++ show v ++ ")" + show (VLet ps v) = "(let (" ++ intercalate " " ["(" ++ n ++ " " ++ show w ++ ")" | (n, w) <- ps] ++ ") " ++ show v ++ ")" show (VBuiltin str) = "[[builtin " ++ str ++ "]]" show VEllipsis = "..." -- cgit v1.2.3-70-g09d2