diff options
author | JJ | 2024-06-17 00:22:38 +0000 |
---|---|---|
committer | JJ | 2024-06-17 00:22:38 +0000 |
commit | 745f45355bd65ddeebcef8d353e8c66fcabde516 (patch) | |
tree | 93d26ba5776e8f26d3df8a6751fcfcbbf48e6468 /lib.rkt | |
parent | 3a4704b8fce33f3d86897ff857d59462b93a6755 (diff) |
implement the simply-typed lambda calculus with general recursion (fix)
Diffstat (limited to 'lib.rkt')
-rw-r--r-- | lib.rkt | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -86,6 +86,9 @@ [`(let ,id (: ,t) ,e ,in) (desugar `((λ ,id (: ,t) ,in) ,e))] + [`(letrec ,x (: ,t) ,e ,in) + (desugar `(let ,x (: ,t) (fix (λ ,x (: ,t) ,e)) ,in))] + [`(λ ,x (: ,t) ,e) `(λ ,x (: ,t) ,(desugar e))] [`(,e1 ,e2 ,e3) `(,(desugar e1) ,(desugar e2) ,(desugar e3))] [`(,e1 ,e2) `(,(desugar e1) ,(desugar e2))] |