如何在 common-lisp 中使用 slime 浏览 class 层次结构

How to browse class hierarchy with slime in common-lisp

我用的是emacs,+slime+sbcl.

我可以在通过 slime-inspector 检查 class/object 时上升到 class 层次结构。 但是我怎样才能浏览特定 class 的子 class 呢? 是否有粘液功能(或其他方式)来做到这一点?

是的,它应该出现在检查器的 DIRECT-SUBCLASSES 槽中。

如果您没有看到它,可能是因为您的 Slime 检查器不花哨:

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

或者只需调用 M-x 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>)