我正在学习 Common Lisp,我想知道是否通过使用 a 中的:type插槽来defstruct提高代码效率?
在“人工智能编程范式”中,Peter Norvig 写道,通过适当的声明,您可以使 Common Lisp 程序与 C 程序一样高效。他写道,Common Lisp 中的运行时类型检查很慢,但如果您添加声明,则可以消除运行时检查。
所以,我知道使用:type插槽类似于变量的声明,所以我想知道使用是否:type会使代码更快(即消除运行时检查)。
这里有些例子:
(defstruct matrix
rows
columns
contents)
Run Code Online (Sandbox Code Playgroud)
这是带有以下内容的版本:type:
(defstruct matrix
rows
columns
contents)
Run Code Online (Sandbox Code Playgroud)
那么 using 可以:type消除运行时检查吗?或者如果有可能你如何使用:type来消除运行时检查?
我正在 Common Lisp 中研究线性代数系统,我想让它变得高效。因此,我想知道通过执行(如上)(contents (:type list))编译器是否要消除编译器在内容未声明为列表时会执行的运行时检查。
谢谢