lisp函数的实现
implementations of lisp functions
在C中,如果我想看一个函数如何工作,我打开提供函数的库并分析代码。如何看到 lisp 函数的实现?例如交集函数
你也可以看看lisp函数的源码
例如,CLISP 的源文件,一种 Common Lisp 实现,可在此处获得:http://www.clisp.org/impnotes/src-files.html
如果想考察列表相关函数的实现,可以看文件:http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/src/list.d
通常的答案是“M-.
”
假设您有正确配置的 IDE 和函数的源代码,单击其名称并按 M-.
(即 Meta、Alt、Option 或 Escape,以及 dot/period; 或者你的 IDE 使用的任何键)应该揭示它的定义(或者,对于通用函数,定义,复数;包括任何可能优化某些情况的编译器宏)。有时它在右键单击或其他鼠标菜单或工具栏上。
如果源代码不可用,您通常可以通过评估 (disassemble 'function)
来查看实际编译的形式
大多数 IDE,包括常年喜爱的 Emacs+Slime,菜单上还有其他检查操作。
在非IDE环境中,大多数编译器都有自己的反射工具(依赖于编译器),通常也由 Slime 使用的 Swank 库映射;人们可能会在该包中找到有用的功能。
这确实应该记录在您的 IDE 手册中。
我应该附上这个:
你真的不应该关心核心库函数的实现;他们的合同行为在 CLHS 标准中有很好的记录,该标准可在线获取,例如,Quicklisp 有一个实用程序可以 link 它到 Slime(C-c C-d h
在 COMMON-LISP
包中的符号上) ;对于所有编写良好的 Lisp 库,应该有附加到函数、变量、类 等的文档,可通过 REPL 中的 documentation
函数或 IDE 的菜单和检查访问windows.
核心库函数通常经过高度优化,并且比大多数用户级代码应该想要的复杂得多,并且经常调用特定于编译器的 "guts" 应该避免在应用程序代码中这样做。
在C中,如果我想看一个函数如何工作,我打开提供函数的库并分析代码。如何看到 lisp 函数的实现?例如交集函数
你也可以看看lisp函数的源码
例如,CLISP 的源文件,一种 Common Lisp 实现,可在此处获得:http://www.clisp.org/impnotes/src-files.html
如果想考察列表相关函数的实现,可以看文件:http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/src/list.d
通常的答案是“M-.
”
假设您有正确配置的 IDE 和函数的源代码,单击其名称并按 M-.
(即 Meta、Alt、Option 或 Escape,以及 dot/period; 或者你的 IDE 使用的任何键)应该揭示它的定义(或者,对于通用函数,定义,复数;包括任何可能优化某些情况的编译器宏)。有时它在右键单击或其他鼠标菜单或工具栏上。
如果源代码不可用,您通常可以通过评估 (disassemble 'function)
大多数 IDE,包括常年喜爱的 Emacs+Slime,菜单上还有其他检查操作。
在非IDE环境中,大多数编译器都有自己的反射工具(依赖于编译器),通常也由 Slime 使用的 Swank 库映射;人们可能会在该包中找到有用的功能。
这确实应该记录在您的 IDE 手册中。
我应该附上这个:
你真的不应该关心核心库函数的实现;他们的合同行为在 CLHS 标准中有很好的记录,该标准可在线获取,例如,Quicklisp 有一个实用程序可以 link 它到 Slime(C-c C-d h
在 COMMON-LISP
包中的符号上) ;对于所有编写良好的 Lisp 库,应该有附加到函数、变量、类 等的文档,可通过 REPL 中的 documentation
函数或 IDE 的菜单和检查访问windows.
核心库函数通常经过高度优化,并且比大多数用户级代码应该想要的复杂得多,并且经常调用特定于编译器的 "guts" 应该避免在应用程序代码中这样做。