File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 6666 (interp-e e (zip xs vs) ds)
6767 (raise 'err ))]))]))
6868
69- ;; (Listof Expr) REnv Defns -> (Listof Value) | 'err
69+ ;; (Listof Expr) REnv Defns -> (Listof Value) { raises 'err }
7070(define (interp-e* es r ds)
7171 (match es
7272 ['() '() ]
7373 [(cons e es)
74- (match (interp-e e r ds)
75- ['err 'err ]
76- [v (match (interp-e* es r ds)
77- ['err 'err ]
78- [vs (cons v vs)])])]))
74+ (cons (interp-e e r ds)
75+ (interp-e* es r ds))]))
7976
8077;; Defns Symbol -> Defn
8178(define (defns-lookup ds f)
Original file line number Diff line number Diff line change 6666 (interp-e e (zip xs vs) ds)
6767 (raise 'err ))]))]))
6868
69- ;; (Listof Expr) REnv Defns -> (Listof Value) | 'err
69+ ;; (Listof Expr) REnv Defns -> (Listof Value) { raises 'err }
7070(define (interp-e* es r ds)
7171 (match es
7272 ['() '() ]
7373 [(cons e es)
74- (match (interp-e e r ds)
75- ['err 'err ]
76- [v (match (interp-e* es r ds)
77- ['err 'err ]
78- [vs (cons v vs)])])]))
74+ (cons (interp-e e r ds)
75+ (interp-e* es r ds))]))
7976
8077;; Defns Symbol -> Defn
8178(define (defns-lookup ds f)
Original file line number Diff line number Diff line change 7070 (let ((v (interp-e e r ds)))
7171 (interp-match v ps es r ds))]))
7272
73- ;; (Listof Expr) REnv Defns -> (Listof Value) | 'err
73+ ;; (Listof Expr) REnv Defns -> (Listof Value) { raises 'err }
7474(define (interp-e* es r ds)
7575 (match es
7676 ['() '() ]
7777 [(cons e es)
78- (match (interp-e e r ds)
79- ['err 'err ]
80- [v (match (interp-e* es r ds)
81- ['err 'err ]
82- [vs (cons v vs)])])]))
78+ (cons (interp-e e r ds)
79+ (interp-e* es r ds))]))
8380
8481;; Value [Listof Pat] [Listof Expr] Env Defns -> Answer
8582(define (interp-match v ps es r ds)
Original file line number Diff line number Diff line change 7575 (interp-e e (append (zip xs vs) r) ds)
7676 (raise 'err )))]))
7777
78- ;; (Listof Expr) REnv Defns -> (Listof Value) | 'err
78+ ;; (Listof Expr) REnv Defns -> (Listof Value) { raises 'err }
7979(define (interp-e* es r ds)
8080 (match es
8181 ['() '() ]
8282 [(cons e es)
83- (match (interp-e e r ds)
84- ['err 'err ]
85- [v (match (interp-e* es r ds)
86- ['err 'err ]
87- [vs (cons v vs)])])]))
83+ (cons (interp-e e r ds)
84+ (interp-e* es r ds))]))
8885
8986;; Id Env [Listof Defn] -> Answer
9087(define (interp-var x r ds)
You can’t perform that action at this time.
0 commit comments