CSC 330 Lecture Notes Week 9
More on Functional Programming and Lisp
; This is an "x" version of Lisp's read-eval-print loop. When the function
; read-xeval-print-loop is run, it will interactively input expr's from
; the terminal and hand them over to xeval. Note that memory is defined as
; a prog var, that is sent automatically as a parameter to xeval.
;
(defun read-xeval-print-loop ()
(prog (memory result)
(setq memory '(nil))
loop
(princ "X>")
(setq result (xeval (read) memory))
(princ (car result))
(setq memory (cadr result))
(terpri)(terpri)
(go loop)
)
)
(computed-value-of-expr possibly-updated-memory)
( name value )
( var-name data-value )
( function-name formal-parms function-body )
( pi ai )
and these bindings are added to the end of the memory.