我是 lisp 的新手,我边走边学。
标准的通用 lisp 中断函数 1. 将您弹出到调试器中,并且 2. 如果您选择继续,则返回 nil。
在我看来,将您弹出到调试器但返回其输入的中断功能将非常有用。然后,您可以将它透明地插入给定的 s 表达式周围,以查看该点的程序状态。
所以我可以做类似的事情
CL-USER> (break-transparent (+ 1 2))
这会将我弹出到调试器中,让我环顾四周,然后返回
3
lisp 中有没有这样的东西,如果没有,有没有办法制作这样的东西?我还不擅长宏。
谢谢,
编辑:Doug Currie 在下面用一个简单的宏很好地回答了这个问题。这是我为其他任何有此问题的人稍作修改的版本,它在调试器窗口中显示了打破透明前端和中心的参数。
(defmacro break-transparent (exp)
`(let ((x ,exp)) (break "argument to break: ~:S" x) x))