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