File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 4646;; Compile e as the entry point
4747(define (compile-entry e)
4848 `(entry
49- ,@(compile-entry e '() )
49+ ,@(compile-e e '() )
5050 ret
5151
5252 err
Original file line number Diff line number Diff line change 8080
8181;; Prim (Listof Value) -> Answer
8282(define (interp-prim p vs)
83- (match* ( p vs)
84- [('add1 (? integer? i0)) (add1 i0)]
85- [('sub1 (? integer? i0)) (sub1 i0)]
86- [('zero? (? integer? i0)) (zero? i0)]
87- [('box v0) (box v0)]
88- [('unbox (? box? v0)) (unbox v0)]
89- [('empty? v0) (empty? v0)]
90- [('cons v0 v1) (cons v0 v1)]
91- [('car (cons v0 v1)) v0]
92- [('cdr (cons v0 v1)) v1]
93- [('+ (? integer? i0) (? integer? i1))
83+ (match (cons p vs)
84+ [(list 'add1 (? integer? i0)) (add1 i0)]
85+ [(list 'sub1 (? integer? i0)) (sub1 i0)]
86+ [(list 'zero? (? integer? i0)) (zero? i0)]
87+ [(list 'box v0) (box v0)]
88+ [(list 'unbox (? box? v0)) (unbox v0)]
89+ [(list 'empty? v0) (empty? v0)]
90+ [(list 'cons v0 v1) (cons v0 v1)]
91+ [(list 'car (cons v0 v1)) v0]
92+ [(list 'cdr (cons v0 v1)) v1]
93+ [(list '+ (? integer? i0) (? integer? i1))
9494 (+ i0 i1)]
95- [('- (? integer? i0) (? integer? i1))
95+ [(list '- (? integer? i0) (? integer? i1))
9696 (- i0 i1)]
9797 [_ 'err ]))
9898
You can’t perform that action at this time.
0 commit comments