gpt4 book ai didi

common-lisp - 跟踪闭包

转载 作者:行者123 更新时间:2023-12-04 12:24:22 26 4
gpt4 key购买 nike

是否可以在 CL 中跟踪闭包?例如,我可以在下面追踪 foo-3 吗?

(defun foo (n)
(lambda (i) (incf n i)))
FOO
(setf foo-3 (foo 3))
#<CLOSURE :LAMBDA (I) (INCF N I)>

(funcall foo-3 2)
5
(funcall foo-3 2)
7
(trace ???)

最佳答案

我认为这是不可能的:据我所知,跟踪宏的工作原理通常是将给定符号处的函数替换为调用原始符号并打印出跟踪位的包装器。

如果您对(复杂的)实现细节感兴趣,SBCL 代码位于 src/code/ntrace.lisp (您可能想查看 trace-1 函数)。

当然,如果你只想在调用 foo-3 时打印出一些东西,你总是可以在 foo...

关于common-lisp - 跟踪闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6871302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com