diff options
author | JJ | 2024-06-20 20:38:21 +0000 |
---|---|---|
committer | JJ | 2024-06-20 20:47:53 +0000 |
commit | 9593f27df88211b610799a1c09105f23ea311ffb (patch) | |
tree | d877923e71e6350f4331de12d0874cd23900bf5a /stlc.rkt | |
parent | 5d17c1e7254e1359484b4dfd7a1236cf6f3b8adb (diff) |
go all in on unicode: rename ctx and heap to \Gamma and \Sigma
Diffstat (limited to 'stlc.rkt')
-rw-r--r-- | stlc.rkt | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -4,16 +4,16 @@ ;; The Simply-Typed Lambda Calculus ;; (interpret Expr Table[Sym, Expr]): Value -(define (interpret expr [ctx #hash()]) - (interpret- (strip expr) ctx)) -(define (interpret- expr ctx) +(define (interpret expr [Γ #hash()]) + (interpret- (strip expr) Γ)) +(define (interpret- expr Γ) (match expr - [x #:when (dict-has-key? ctx x) (dict-ref ctx x)] - [`(λ ,x ,e) `(λ ,x ,e ,ctx)] + [x #:when (dict-has-key? Γ x) (dict-ref Γ x)] + [`(λ ,x ,e) `(λ ,x ,e ,Γ)] [`(,e1 ,e2) - (match (interpret- e1 ctx) - [`(λ ,x ,e ,env) (interpret- e (dict-set env x (interpret- e2 ctx)))] - [e `(,e ,(interpret- e2 ctx))])] + (match (interpret- e1 Γ) + [`(λ ,x ,e ,env) (interpret- e (dict-set env x (interpret- e2 Γ)))] + [e `(,e ,(interpret- e2 Γ))])] [e e])) ;; (check Expr Type Table[Sym, Type]): Bool |