rendered paste body(require (lib "trace.ss" "mzlib"))
(define (eval xval code)
(cond
[(number? code) code]
[(symbol? code) xval]
[(cons? code)
(cond
[(symbol=? (first code) '+) (+ (eval xval (second code)) (eval xval (third code)))]
[(symbol=? (first code) '-) (- (eval xval (second code)) (eval xval (third code)))]
[(symbol=? (first code) '*) (* (eval xval (second code)) (eval xval (third code)))]
[(symbol=? (first code) '/) (/ (eval xval (second code)) (eval xval (third code)))]
)
]
[else "Idiot programmer passed illegal code: must be number, symbol, or list."]
)
)
(trace eval)
(eval '(+ 1 (* (+ 2 3) x)) 4)