All pastes #938698 Raw Edit

Someone

public text v1 · immutable
·published 2008-03-11 20:30 UTC
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)