20 lines
400 B
Racket
20 lines
400 B
Racket
#lang racket
|
|
|
|
(require "test-util.rkt")
|
|
(require "c2.rkt")
|
|
|
|
(test-eq (env-head-value `((a 1))) 1)
|
|
(test-eq (env-head-symbol `((a 1))) `a)
|
|
(test-eq (eval-symbol `((a 1)) `a) 1)
|
|
(test-eq
|
|
(let ([env `((a 1) (b 2))])
|
|
((interp-exp env) `(+ a (- b))))
|
|
-1)
|
|
(test-eq
|
|
((interp-exp `()) `(let ([a (+ 1 2)]) (+ a 3)))
|
|
6)
|
|
|
|
(test-eq
|
|
((interp-R1 `()) `(program `() (let ([a (+ 1 2)]) (+ a 3))))
|
|
6)
|