Name:
Anonymous
2007-06-17 16:46
ID:zJT0c10Q
(define(eval exp env)(cond((self-evaluating? exp) exp)((variable? exp)(lookup-variable-value exp env))((quoted? exp)(text-of-quotation exp))((assignment? exp)(eval-assignment exp env))((definition? exp)(eval-definition exp env))((if? exp)(eval-if exp env))((lambda? exp)(make-procedure(lambda-parameters exp)(lambda-body exp)
env))((begin? exp)(eval-sequence(begin-actions exp) env))((cond? exp)(eval(cond->if exp) env))((application? exp)(apply(eval(operator exp) env)(list-of-values(operands exp) env)))(else(error "Unknown expression type - EVAL" exp))))
Name:
Anonymous
2007-06-17 19:09
ID:zJT0c10Q
(define eval (lambda (exp env) (cond ((self-evaluating? exp) exp)
((variable? exp) (lookup-variable-value exp env))
((quoted? exp) (text-of-quotation exp))
((assignment? exp) (eval-assignment exp env))
((definition? exp) (eval-definition exp env))
((if? exp) (eval-if exp env))
((lambda? exp)
(make-procedure (lambda-parameters exp)
(lambda-body exp)
env))
((begin? exp)
(eval-sequence (begin-actions exp) env))
((cond? exp) (eval (cond->if exp) env))
((application? exp)
(apply (eval (operator exp) env)
(list-of-values (operands exp) env)))
(else
(error "unknown expression type - eval" exp)))))