在這樣的教程中,可以簡單地使用:
CL-USER> (class-precedence-list (find-class (class-name (class-of 123))))
在 LispWorks 中,它們可以通過您的默認包使用串列獲得,在 Allegro 中,它們是從 ACLMOP 匯出的。
但是,如何在 SBCL中使用class-precedence-list和?class-direct-superclasses
觀察:通過The Common Lisp Cookbook在 CLOS 上有本教程的新版本。
uj5u.com熱心網友回復:
在 SBCL 中,有必要使用包符號從 匯入符號sb-mop:
CL-USER> (sb-mop:class-direct-superclasses (find-class (class-name (class-of 123))))
(#<BUILT-IN-CLASS COMMON-LISP:INTEGER>)
CL-USER> (sb-mop:class-precedence-list (find-class (class-name (class-of 123))))
(#<BUILT-IN-CLASS COMMON-LISP:FIXNUM> #<BUILT-IN-CLASS COMMON-LISP:INTEGER>
#<BUILT-IN-CLASS COMMON-LISP:RATIONAL> #<BUILT-IN-CLASS COMMON-LISP:REAL>
#<BUILT-IN-CLASS COMMON-LISP:NUMBER> #<SB-PCL:SYSTEM-CLASS COMMON-LISP:T>)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/441398.html
下一篇:x64上的C 崩潰
