如果键入 (+ 2 3)
,lisp 返回 5
但是如何告诉 lisp 编译器返回未计算的值(返回 (+ 2 3)
)?是否有一些标志可以关闭运算符在操作数上的自动应用?在 read-eval-print
中,应该暂停 eval。
由于这必须作为一个接受表达式并返回未计算的函数来完成,我如何在函数中引用它?
最佳答案
对于普通的 lisp,无法接收“引用”的原始表达式作为普通函数的参数。 The evaluation rules are fixed .但是,您可以使用宏来做您想做的事
(defmacro my-quote (expr) (list 'quote expr))
==> MY-QUOTE
(my-quote (+ 2 3))
==> (+ 2 3)
关于lisp - 在lisp中暂停算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27199261/