2007/09/02

[Common Lisp][MOP] スーパークラスのリストを取得する

スーパークラスのリストを取得するには MOP の class-precedence-list を使用しますが、処理系により class-precedence-list のパッケージが異なります。
OpenMCL の場合は ccl パッケージです。

CL-USER> (defclass foo () ())
#<STANDARD-CLASS FOO>
CL-USER> (defclass bar (foo) ())
#<STANDARD-CLASS BAR>
CL-USER> (ccl:class-precedence-list (find-class 'bar))
(#<STANDARD-CLASS BAR> #<STANDARD-CLASS FOO> #<STANDARD-CLASS STANDARD-OBJECT> #<BUILT-IN-CLASS T>)
CL-USER> (ccl:class-precedence-list (find-class 'list))
(#<BUILT-IN-CLASS LIST> #<BUILT-IN-CLASS SEQUENCE> #<BUILT-IN-CLASS T>)

0 件のコメント: