当前位置:  开发笔记 > 编程语言 > 正文

Lisp内省?当一个函数被调用时以及它何时退出

如何解决《Lisp内省?当一个函数被调用时以及它何时退出》经验,为你挑选了1个好方法。

使用常见的lisp,我假设内省属性.如何将代码添加到常用的lisp代码中,这些代码将告诉我何时调用函数以及何时执行完毕.我想采取任何lisp代码和代码的这种特殊修改.我想通过lisp的AST分析,这应该是可能的.



1> dsm..:

您可以使用(trace function)简单的机制.对于更复杂的内容,这是comp.lang.lisp的一个很好的讨论.

[CL_USER]>
(defun fac (n)
    "Naïve factorial implementation"
    (if (< 1 n)
        (* n (fac (- n 1)))
        1))
FAC
[CL_USER]> (trace fac)
;; Tracing function FAC.
(FAC)
[CL_USER]> (fac 5)
1. Trace: (FAC '5)
2. Trace: (FAC '4)
3. Trace: (FAC '3)
4. Trace: (FAC '2)
5. Trace: (FAC '1)
5. Trace: FAC ==> 1
4. Trace: FAC ==> 2
3. Trace: FAC ==> 6
2. Trace: FAC ==> 24
1. Trace: FAC ==> 120
120
[CL_USER]> 

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有