lisp - 在lisp中暂停算术运算

标签 lisp common-lisp

如果键入 (+ 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/

相关文章:

emacs - 除了 Emacs,还有什么好的 Lisp 编程编辑器吗?

algorithm - 按元素出现删除子列表(方案)

lisp - 将 mapcar 映射到两个参数

common-lisp - 有内置类的图吗?

list - 通过与 Common Lisp 中的 alist 进行比较来删除列表中的子列表

oop - Clojure 的 CLOS?

yacc 中的 Lisp 语法

方案表达式评估

error-handling - 在 SBCL 中使用 [Take New] 重新启动

garbage-collection - 我怎样才能让 Lisp 垃圾收集器删除我的类槽中的外部 c++ 分配内存?