gpt4 book ai didi

lisp - CLOS:如何使插槽具有强制类型的符号向量?

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

我正在尝试创建一个类,该类可以将符号向量存储在 SBCL 的槽中。我不知道如何设置它。

到目前为止我最好的猜测是

(defclass Individual ()
((discrete-decisions :type (vector symbol))))

这会返回以下错误:

keyword argument not a symbol:
(DISCRETE-DECISIONS :TYPE (VECTOR SYMBOL)).
[Condition of type SB-INT:SIMPLE-PROGRAM-ERROR]

一些实验表明,将类型更改为仅 symbol 会返回相同的错误。我认为 symbol 是 Common Lisp 中的有效类型……我错了吗?

我怎样才能让它工作?

[编辑]

我遇到的上述问题是在 Emacs 24.2 下的 09-22-2012 Slime 构建中运行 SBCL 1.0.58。当我从命令行运行 SBCL 1.0.58 时,没有问题。这看起来不像是 SBCL 问题...

最佳答案

您可能会考虑在插槽访问器/写入器上定义一个 :after 方法。此外,可以通过定义自己的元类和自定义 slot-value-using-class 来实现最终程度的控制

关于lisp - CLOS:如何使插槽具有强制类型的符号向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12556513/

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