diff options
author | Tom Smeding <tom.smeding@gmail.com> | 2019-11-20 22:47:52 +0100 |
---|---|---|
committer | Tom Smeding <tom.smeding@gmail.com> | 2019-11-20 23:06:45 +0100 |
commit | d541e0f84ae8f82f70e2393207d359975841facf (patch) | |
tree | 7a1618c9379b05d6645e67db29af6b7171194c20 /AST.hs | |
parent | 2cafab14203878f355a531fc6a3763881a52b108 (diff) |
lambdarec for singly-recursive lambda's
Diffstat (limited to 'AST.hs')
-rw-r--r-- | AST.hs | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -15,6 +15,7 @@ data Value | VQuoted Value | VDefine Name Value | VLambda [Name] Value + | VLambdaRec Name [Name] Value | VLet [(Name, Value)] Value | VBuiltin String | VEllipsis @@ -32,6 +33,7 @@ instance Show Value where show (VQuoted e) = '\'' : show e show (VDefine n v) = "(define " ++ n ++ " " ++ show v ++ ")" show (VLambda as v) = "(lambda (" ++ intercalate " " as ++ ") " ++ show v ++ ")" + show (VLambdaRec rn as v) = "(lambdarec " ++ rn ++ " (" ++ 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 = "..." |