首页 > 解决方案 > deftype 如何处理符号以及为什么它与 defvar/defun 不同

问题描述

Common Lisp 中符号的单元格绑定似乎没有扩展到(deftype),是否(deftype)将 [symbol, predicate body] 作为 [key, value] 添加到环境使用的关联映射中类型检查?

我可以看到为什么类型谓词不会存储在函数单元格中,但是是否有原因没有“特殊运算符”单元格或类型说明符的专用属性列表属性?

标签: variablestypesbindinglispcommon-lisp

解决方案


它完全取决于类型信息的存储位置。一些实现可能决定使用符号plist。另一个可能会使用一些单独的表,其中符号只是键。

我不会过多地阅读这些细节。


推荐阅读