我試圖教自己一些LISP,雖然我理解它的大部分,但我很難理解eval函數。我知道它已經爲我們做了,它不好用(所以我聽到),但我怎麼才能做出一個剛添加的功能?LISP動態函數?
到目前爲止,我試圖/想
(setf input-prompt "Enter addition epression: ")
(setf output-prompt "The value is: ")
(defun prompt-for-input (msg)
(format t msg))
(defun sum (expression)
(format t "Summing ~d and ~d.~%" x y)
(+ x y))
(defun add()
(prompt-for-input input-prompt)
(let ((expression (read)))
((sum (expression)))
(add)))
不是真的知道該去哪裏這一點,任何幫助表示讚賞。
你到底想幹什麼?這聽起來像你想根據你讀的表達式調用不同的函數,而不使用'eval'。這基本上是寫一個小解釋器,這是大多數Lisp書籍(Little Schemer等)所涵蓋的內容。但如果你能更清楚地描述你的問題,這將有所幫助。 –