Как просмотреть иерархию классов со слизью в Common-LISP - PullRequest
3 голосов
/ 31 октября 2019

Я использую emacs, + slime + sbcl.

Я могу пройти вверх по иерархии классов, пока я проверяю класс / объект через инспектор слизи. Но как я могу просматривать подклассы определенного класса? Есть ли функция слизи (или другой способ) сделать это?

1 Ответ

7 голосов
/ 31 октября 2019

Да, он должен появиться в слоте DIRECT-SUBCLASSES в инспекторе.

Если вы его не видите, это может быть из-за того, что ваш инспектор слизи не fancy :

(setq slime-contribs '(slime-fancy))

Или просто позвоните Mx slime-enable-contrib , а затем fancy, что включает все необычные функции (технически fancy-inspector должно быть достаточно).

Вы также можете сделать это в своих программах, используя Closer MOP:

(closer-mop:class-direct-subclasses (find-class 'number))
=> (#<BUILT-IN-CLASS COMMON-LISP:COMPLEX> #<BUILT-IN-CLASS COMMON-LISP:REAL>)
...