在Peter Norvig的史诗第7章" 人工智能编程范式"中,他描述了一个函数interp,它实际上是eval一个在REPL中解释一个简单的方案时使用的简单函数.
(defun interp (x &optional env)
"Interpret (evaluate) the expression x in the environment env."
(cond
((symbolp x) (get-var x env))
((atom x) x)
((case (first x)
(QUOTE (second x))
(BEGIN (last1 (mapcar #'(lambda (y) (interp y env))
(rest x))))
(SET! (set-var! (second x) (interp (third x) env) env))
(IF (if (interp (second x) env)
(interp (third x) env)
(interp (fourth x) env)))
(LAMBDA (let ((parms (second x))
(code (maybe-add 'begin …Run Code Online (Sandbox Code Playgroud)