por*_*y11 14 lisp macros common-lisp
在使用REPL时,定义函数和宏是有帮助的,特别是如果你试图为某些东西制作宏,然后将其模拟为函数,并且每次调用宏.Common Lisp中有可能取消定义吗?
jbm*_*jbm 15
是的,你可以用fmakunbound它.
它适用于函数和宏.这是REPL会话的示例:
CL-USER> (defun add (n m) (+ n m))
ADD
CL-USER> (add 1 2)
3
CL-USER> (fmakunbound 'add)
ADD
CL-USER> (add 1 2)
; [snip]
; Evaluation aborted on #<UNDEFINED-FUNCTION ADD {C3305F1}>.
Run Code Online (Sandbox Code Playgroud)
请注意,它确实是fmak而不是fmake.这仍然让我不时骚扰我.
Rai*_*wig 11
取消定义宏或函数并不意味着此更改通过代码传播.
如果您有一个宏并想要将其重新定义为函数,那么您还必须重新编译使用该宏的代码.
请注意,如果使用某些优化(内联)编译代码,则需要重新编译更多代码.即使重新定义的函数也可能没有任何效果,直到使用代码也被重新编译.
| 归档时间: |
|
| 查看次数: |
1487 次 |
| 最近记录: |