gpt4 book ai didi

methods - LISP - 从类中获取所有方法名称

转载 作者:太空宇宙 更新时间:2023-11-03 18:58:33 24 4
gpt4 key购买 nike

我能否在 LISP 中获取类中的所有方法名称?

其实我需要的方法,有

set-

在他们的名字中。

最佳答案

对于 LispWorks:

(defun find-all-methods (class prefix)
(loop for method in (clos:specializer-direct-methods class)
for gf = (method-generic-function method)
for fname = (generic-function-name gf)
for fname-string = (when (symbolp fname) (symbol-name fname))
when (and (stringp fname-string)
(>= (length fname-string)
(length prefix))
(string= fname-string prefix
:end1 (length prefix)
:end2 (length prefix)))
collect method))

例子:

CL-USER 20 > (pprint (find-all-methods (find-class 'capi:button) "PRINT-"))

(#<STANDARD-METHOD CAPI:PRINT-COLLECTION-ITEM NIL (CAPI:BUTTON T) 40E06173D3>
#<STANDARD-METHOD CAPI:PRINT-CAPI-BUTTON NIL (CAPI:BUTTON) 40E05F9DDB>)

关于methods - LISP - 从类中获取所有方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41004073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com