]> git.rkrishnan.org Git - sicp.git/blob - src/sicp/ex4_3.rkt
Lazy version of evaluator and tests.
[sicp.git] / src / sicp / ex4_3.rkt
1 #lang racket
2
3 (define (eval exp env)
4   (cond ((self-evaluating? exp) exp)
5         ((variable? exp) (lookup-variable-value exp env))
6         ((type exp) ((get (type exp)) exp env))))
7
8 (define (type expr) (car expr))
9
10 (put 'quote 
11      (lambda (expr env)
12        (text-of-quotation expr)))
13
14 (put 'set!
15      (lambda (expr env)
16        (eval-assignment expr env)))
17
18
19
20