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

2023-11-24

我正在尝试创建一个类,可以将符号向量存储在 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 中的有效类型...我错了吗?

我怎样才能让它发挥作用?

[EDIT]

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


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CLOS:如何使插槽具有强制类型的符号向量? 的相关文章

  • Jupyter 和 Common Lisp

    我正在尝试安装cl jupyter https github com fredokun cl jupyter common lisp 内核Jupyter http jupyter org 我无法让它工作 当我打开一个新的 lisp 笔记本
  • Common Lisp 中的未绑定变量

    我是 Lisp 新手 正在阅读 ANSI Common Lisp 第 8 章中的文本生成器示例 我按照该示例并在 LET 变量 prec 的范围内定义了一个函数 see let prec defun see symb let pair as
  • Scheme/Racket有枚举操作吗?

    Scheme Racket 是否有相当于 Haskell 中的 a b 表示法的枚举表示法 在 Haskell 中 1 5 计算结果为列表 1 2 3 4 5 for list i in range 1 6 i sequence gt li
  • 了解 LISP 中的绑定变量和自由变量

    我正在阅读SICP 又出现了绑定变量和自由变量的话题 然而 我对此感到困惑 术语 绑定变量 仅适用于形式参数变量吗 此外 文本还指出过程定义 绑定 其形式参数 这让我感到困惑 因为有些人说我们将值 绑定 到变量 显然 当我们谈论不同类型的变
  • 通过 Emacs 启动时如何配置 SBCL 以使用更多 RAM?

    如何配置 SBCL 使其在使用 Emacs 中的 M x slime 启动时使用比默认值更多的内存 从我在网上看到的情况来看 答案似乎是调用 SBCL 传递参数 dynamic space size 由于我不直接调用 SBCL 因此我不知道
  • Clozure Common Lisp - TCP 套接字编程 - 发送回复

    我有一个非常小的程序 它打开一个套接字并接受一个连接 然后它会获取远程 IP 和端口 我想向远程计算机 telnet 发送一条短信并关闭连接 我无法确定哪个函数用于向 telnet 客户端发送消息 The Clozure手册 http cc
  • Common Lisp 中的 LET 与 LET*

    我理解 LET 和 LET 并行绑定与顺序绑定 之间的区别 并且作为理论上的问题 它非常有意义 但有没有什么情况你曾经真正需要过 LET 在我最近查看的所有 Lisp 代码中 您可以将每个 LET 替换为 LET 而无需进行任何更改 编辑
  • C# 中的通用 Func<> 类型

    我正在用 C 编写一个小型 Lisp 解释器 它基本上已经可以工作了 目前我正在使用一个接口来表示函数 public interface LispFunction object Apply ArrayList parameters 该接口由
  • 如何克服 emacs lisp 闭包缺少局部变量的问题

    我现在正在学习 Emacs Lisp参考手册 http www gnu org software emacs manual elisp html和 Common Lisp 来自LISP https rads stackoverflow co
  • CLISP - 反转简单列表

    我必须反转简单 单维 列表的元素 我知道有一个内置的反向函数 但我不能用它来做这个 这是我的尝试 defun LISTREVERSE LISTR cond lt length LISTR 2 LISTR listr is 1 atom or
  • F# 中的非类型化/类型化代码引用与宏卫生之间是否存在关系?

    我想知道 F 中的非类型 类型代码引用与宏系统的卫生之间是否存在关系 他们是否用各自的语言解决相同的问题 或者它们是不同的关注点 元编程方面是唯一的相似之处 即使在这方面 也存在很大的差异 您可以将宏的转换器视为从语法到语法的函数 就像您可
  • 如何定义和使用 Common Lisp 包(库)?

    我在几个 Lisp 源文件中开发了一些 Common Lisp 函数 我希望这些函数可以轻松地供我编写的其他函数使用 或者如果我认为它们对其他人有用的话 可以在 github 上提供 现在 我只是将它们放在一些预定义的文件夹中并使用 req
  • 为什么在基于 Lisp 的语言中习惯上将许多右括号放在一行上?

    通常代码如下所示 one thing another thing arg1 f arg5 r another thing arg1 f arg5 r 为什么不喜欢这样 one thing another thing arg1 f arg5
  • 用通用函数替换普通函数

    我想将 elt nth 和 mapcar 等名称与我正在原型设计的新数据结构一起使用 但这些名称指定普通函数 因此我认为需要将其重新定义为通用函数 重新定义这些名称可能是一种不好的形式 有没有办法告诉 defgeneric 不要生成程序错误
  • 使用包阴影符号

    例如 我有这个包定义 它遮蔽了 COMMON LISP LISTEN defpackage shadows use common lisp shadow listen export listen 然后我想使用另一个包中的这个包 比如说 de
  • Common Lisp——为什么这个符号不是外部的?

    我正在尝试在 ASDF 中运行测试 如下所示 foo asd defsystem foo tests depends on foo fiveam components module tests components file main pe
  • 为什么 LISP 中符号名称中的连字符是约定俗成的?

    这个推荐的理由是什么 为什么不与使用下划线的其他编程语言保持一致 我认为 LISP 使用连字符有两个原因 历史 和 因为你可以 History LISP 是一种古老的语言 在早期输入下划线可能会很困难 例如 我用于 LISP 的第一个终端是
  • gensym 在 Lisp 中做什么?

    我听到一些同学谈论他们如何使用该功能gensym为此 我问他们它做了什么 甚至在网上查了一下 但我真的无法理解这个函数的作用是什么两者都不为什么或何时最好使用它 特别是 我对它在 Lisp 中的作用更感兴趣 谢谢你们 独特且未被拘禁的符号
  • 学习 Lisp 的资源 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 学习 LISP 的最佳方法是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • Swift 中不同类型的多维数组

    当所有维度都具有相同类型时 我可以轻松地在 Swift 中编写多维数组 例如 var totalTime Int 如何使第一个维度为 String 第二个维度为 Int 我建议改用元组数组 你想要什么could可以使用 Any 类型的数组来
  • 如何寻找有用的红宝石

    有哪些寻找有用红宝石的好网站 敏捷网络开发列出插件 虽然不是 ruby gems 我不知道为什么 并允许人们对它们进行评分 红宝石工具箱按类别列出宝石并比较它们的受欢迎程度 Rubygems有一个搜索框 堆栈溢出对最有用的 Rails 插件
  • (重新)将 std::algorithms 与非标准容器一起使用

    我有一个 列 容器类型 struct MyColumnType Data Each row represents a member of an object vector
  • 如何向整数添加尾随零

    我有一个正整数变量 其值可以在 0 到 999 之间 然后将该整数传递给软件 要传递到该软件中 整数应始终为 3 位数字 但问题是 它应该有尾随零 例如 1 should be passed as 100 19 should be pass
  • 在 jPlayer 中使用来自 PHP 的 JSON 动态填充播放列表

    我有一个 PHP 可以在目录中创建 mp3 文件的 JSON 数组 PHP 的 JSON 数组输出为 title Kalimba mp3 path to mydirectory Kalimba mp3 title Maid with the
  • 在 SQL“IN”子句中使用元组

    我有一个包含字段 group id 和 group type 的表 我想查询该表中具有任何元组的所有记录 group id 团体类型 来自元组列表 例如 我希望能够执行以下操作 SELECT FROM mytable WHERE group
  • 学完基础PHP后做什么? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我已经学习了非常基本的 PHP 我认为是这样 琳达教程 在那之后 我觉得我对这种语言有了一定的掌握 我的志向是成为一名网络开发人员 经过一番谷歌搜索后 我计划通过使用 PHPSC
  • 如何在 Xamarin 中添加计时器?

    所以我需要一个计时器从 60 秒开始倒计时 我是 Xamarin 新手 不知道它接受什么 它将用于Android 关于如何开始有什么建议吗 你能用吗System Timers Timer 您可以使用 System Threading Tim
  • Python3 ImportError:没有名为“_tkinter”的模块[重复]

    这个问题在这里已经有答案了 在我的 Linux Mint 18 上 我尝试在 3 5 2 旁边安装 Python 3 6 1 使用这些命令 wget https www python org ftp python 3 6 1 Python
  • 在 JDK 9 上使用 Ignite

    我在 JDK 9 上使用 Ignite 时遇到问题 我有以下最小测试用例 package no ovstetun ignite import org apache ignite spi discovery tcp TcpDiscoveryS
  • 什么是 Jdbc 类型 5 驱动程序

    什么是 JDBC 类型 5 驱动程序 这样的司机有什么好处呢 我可以获得有关 5 类驱动程序的任何链接 教程吗 目前有四种类型的 JDBC 驱动程序 看 JDBC 技术驱动程序的类型 有一些猜测关于下一个类型会是什么样子
  • Swift 4 Codable - API 有时提供 Int,有时提供 String

    我现在正在运行 Codables 但 API 有一些字符串条目 有时可能有一个Int的价值0如果它们是空的 我在这里搜索并发现了这个 Swift 4 Codable Bool 或 String 值但我无法让它运行 我的结构 struct c
  • 优化易失性堆栈变量的存储/构造是否合法?

    我注意到 clang 和 gcc 优化了易失性的构造或分配struct在某些情况下 在堆栈上声明 例如 以下代码 struct nonvol2 uint32 t a b void volatile struct2 volatile nonv
  • 具有 NetTcpBinding 的 WCF 服务库

    我在 NetTcpBinding 方面遇到了困难 当我运行 WCF 服务时 我得到以下信息 System InvalidOperationException Could not find a base address that matche
  • KMeans 聚类后的聚类点 (scikit learn)

    我已经使用 sklearn 使用 Kmeans 完成了聚类 虽然它有一种打印质心的方法 但我发现 scikit learn 没有一种方法来打印每个簇的簇点 或者我到目前为止还没有看到它 这很奇怪 有没有一种巧妙的方法来获取每个簇的簇点 我目
  • 布尔值的测试表达式求值未按预期工作

    我想检查变量的值bool val使用 Struts 2 标签
  • 什么是实现多个构造函数的干净的“Pythonic”方式?

    我无法找到明确的答案 据我所知 你不能拥有多个 init Python 类中的函数 那么我该如何解决这个问题呢 假设我有一个名为Cheese与number of holes财产 我怎样才能有两种方法来创建奶酪对象 一个需要很多洞的 像这样
  • 无法测试样式为显示的元素:无

    我在尝试着getByRole我有一个 li li 它是样式组件的子组件 样式化组件默认为display none 然后在一个min width媒体查询设置为display flex Running getByRole listitem 无需
  • Yii2 内部连接()

    我想通过以下方式实现sql查询 INNER JOIN Product has ProductFeature t ON Product id t productId AND t productFeatureValueId 1 INNER JO
  • CLOS:如何使插槽具有强制类型的符号向量?

    我正在尝试创建一个类 可以将符号向量存储在 SBCL 的插槽中 我不知道如何设置它 到目前为止我最好的猜测是 defclass Individual discrete decisions type vector symbol 这将返回以下错