gpt4 book ai didi

common-lisp - 测试一个符号是否是 Common Lisp 中的 defstruct 名称

转载 作者:行者123 更新时间:2023-12-04 22:47:38 24 4
gpt4 key购买 nike

是否有比以下更简单的方法来测试符号是否是结构的名称:

(fboundp 'make-symbol)

最佳答案

(defun symbol-names-structure-p (symbol)
(let ((class (find-class symbol nil)))
(and class (typep class 'structure-class))))

CL-USER 11 > (defstruct foo bar)
FOO

CL-USER 12 > (symbol-names-structure-p 'bar)
NIL

CL-USER 13 > (symbol-names-structure-p 'foo)
T

还:
CL-USER 14 > (ignore-errors (subtypep 'foo 'structure-object))
T
T

CL-USER 15 > (ignore-errors (subtypep 'bar 'structure-object))
NIL
#<CONDITIONS:ILLEGAL-TYPE-SPECIFIER 402001578B>

关于common-lisp - 测试一个符号是否是 Common Lisp 中的 defstruct 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17755176/

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