如何解决sbcl中的奇怪类优先级列表
| 在sbcl中*(sb-mop:class-precedence-list (find-class \'cons))
==>(#<BUILT-IN-CLASS CONS> #<BUILT-IN-CLASS LIST> #<BUILT-IN-CLASS SEQUENCE>
#<BUILT-IN-CLASS T>)
cons是从list继承而来的,不是相反的吗?我在这里想念什么?
解决方法
这是根据规范。 LIST可以是CONS或符号NIL(这是NULL类型的唯一对象),这意味着这两种类型都是LIST的特化,因此它们的等效系统类继承自LIST。
,并非所有conses都是列表(因为最终的cdr可能不是nil),也不是所有列表都是conses(如前所述,nil不是列表)。因此,从技术上讲,这两个类都不是另一个的子类。我认为规范是用这种方式编写的,因为有人看到了实际的用法,但是我同意它会造成混淆,并且可能会被误导。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。