在 Common Lisp 中,如何以可移植的方式检查对象的类型

2024-01-06

我想定义一个专门处理具有无符号字节 8 元素的数组类型对象的方法。在 sbcl 中,当你(make-array x :element-type '(unsigned-byte 8))对象类由 SB-KERNEL::SIMPLE-ARRAY-UNSIGNED-BYTE-8 实现。是否有一种独立于实现的方法来专门研究无符号字节数组类型?


使用 Sharpsign-dot 在读取时插入依赖于实现的对象类:

(defmethod foo ((v #.(class-of (make-array 0 :element-type '(unsigned-byte 8)))))
  :unsigned-byte-8-array)

The 锐号点 http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_2-4-8-6.html读取器宏在读取时评估表单,确定数组的类。该方法将专门针对特定 Common Lisp 实现用于数组的类。

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

在 Common Lisp 中,如何以可移植的方式检查对象的类型 的相关文章

  • 在 LISP 中使用“ash”执行二分查找?

    所以 我现在正在阅读 Land of Lisp 事实证明 Lisp 与我见过的其他编程语言有很大不同 无论如何 本书提供了一些我们要输入到 CLISP REPL 中的代码 defparameter small 1 defparameter
  • Common Lisp 重新启动到条件绑定

    我在空闲时间学习 Common Lisp 并对条件系统有疑问 当我们在 common lisp 中处理错误时 我们在处理程序中指定错误类型来确定要处理哪个错误 在引发和处理错误之间 我可以进行一些重新启动 例如使用 restart case
  • 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
  • 以下函数式编程模式的正确术语是什么?

    我听说它被称为stream http mitpress mit edu sicp full text sicp book node72 html as an 无限列表 http en wikibooks org wiki Clojure P
  • 查找 lambda 表达式中的自由变量

    有谁知道如何找出 lambda 表达式中的自由变量 自由变量是不属于 lambda 参数的变量 我当前的方法 这对我毫无帮助 是简单地使用 car 和 cdr 来遍历表达式 我的主要问题是确定一个值是否是一个变量或者它是否是方案原语之一 有
  • elisp:有没有办法获取当前 .el 模块的名称(如 C 中的 __FILE__ )?

    在我的 elisp 模块的顶部 我想做一些简单的事情 message concat Loading expand file name current elisp module 您可以使用变量load file name https www
  • 在 Lisp 解释过程中,“读者”的任务是什么?

    我想知道 读者 在解释 编译 Lisp 程序期间的目的 或者更准确地说 是 读者 的任务 从我刚刚完成的问题前研究来看 在我看来 读者 特别是本例中的 Clojure 可以被视为 语法预处理器 它的主要职责是读取器宏和原始形式的扩展 所以
  • 我应该在 Common Lisp 中使用哪些正则表达式库? [关闭]

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

    从范围上来说 内存中的实际实现 语法 例如 if let a 1 a 是变量还是符号 约尔格的回答指出了正确的方向 让我补充一点 我将讨论与 Common Lisp 类似的 Lisp 作为数据结构的符号 符号是 Lisp 中真实的数据结构
  • let* 和 set 之间的区别?在 Common Lisp 中

    我正在从事一个基因编程爱好项目 我有一个函数 宏设置 当以 setq setf 形式评估时 将生成一个如下所示的列表 setq trees make trees 2 gt x abs x 然后它将绑定到 lambda 函数
  • 如何在 Clojure 中遍历一棵树,同时收集每个节点节点的值?

    我想创建一个函数来收集二叉树中每个节点的值 在 ClojureDocs 中 我发现了几个用于遍历树 图的函数 例如 tree seq prewalk 和 postwalk https clojuredocs org clojure core
  • 用通用函数替换普通函数

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

    在编写 Common Lisp 代码时我真正怀念的一件事是访问 Python 库 包括标准库和第三方模块 CLPython 提供了 Python 功能的有限子集 这阻止了大多数库的使用 因此这对我来说并不是很有用 我希望能够从 Common
  • 在Emacs中,这个错误是什么意思? “警告:运行时需要 cl 包”

    我正在字节编译一个模块 它给了我这个警告 Warning cl package required at runtime 为什么这是一个警告 我很清楚我正在使用cl包裹 事实上有一个 require cl 模块中的语句 使用有什么问题吗cl
  • windows下无法用emacs + sbcl启动slime

    我想配置我的 emacs 以使用 SLIME 和 SBCL emacs 文件如下所示 add to list load path D app slime setq inferior lisp program sbcl require sli
  • 在 Common Lisp 中编写 Lambda 表达式

    我目前正在阅读 Paul Graham 的 ANSI Common Lisp 并且有一个关于编写 lambda 表达式的问题 我们是否需要在 lambda 表达式前面加上前缀 如果我在 REPL 中写这样的东西 它会工作得很好 gt lam
  • Common Lisp——为什么这个符号不是外部的?

    我正在尝试在 ASDF 中运行测试 如下所示 foo asd defsystem foo tests depends on foo fiveam components module tests components file main pe
  • Lisp 中的 (定义 (平均 ....))

    我只是在玩scheme lisp 并正在考虑如何纠正我自己的定义average 我不确定如何做一些我认为需要的事情 定义一个接受任意数量参数的过程 计算这些参数 将参数列表传递给 以将它们加在一起 有人有定义的例子吗average 我似乎对
  • 从when语句内的函数返回

    我想做的就是使用 when 语句返回一个值 我想要以下功能 if x return y 我正在尝试使用 when x y 但是when语句并没有以退出函数并返回y的方式进行计算 它只是愉快地继续下一行 有没有办法做到这一点而不需要制作一个看
  • 学习 LISP 的最佳方法是什么? [关闭]

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

随机推荐

  • 扩展 Google 地图范围,使 div 叠加层不覆盖任何标记

    在我正在开发的 Google 地图混搭中 地图为 100 宽 高度几乎为 100 并且我有一个水平透明 div 它使用 z index 和 CSS 覆盖地图的左侧 当我动态添加标记时 我从一个空的 Bounds 对象开始 然后将其一一扩展以
  • 隐藏软键盘

    我需要能够隐藏软键盘以响应单击按钮 我看过很多关于这个主题的帖子 似乎解决方案是使用InputMethodManager 但我一直无法让它为我工作 据说以下将隐藏软键盘 InputMethodManager inputManager Inp
  • 如何设置 CSS、JS 和图像的过期时间?

    我最近使用 firebug 上的 pagespeed 插件分析了我的网站 它建议我设置 CSS JS 和图像文件的过期时间 我想知道 我该怎么做 当我运行 PageSpeed Addon 时 我用它来修复完全相同的问题
  • 使用 asyncio 实现非阻塞 I/O

    我正在尝试使用 Pygame 和 asyncio 编写一个网络游戏 但我不知道如何避免挂起读取 这是我为客户提供的代码 asyncio coroutine def handle client print Connected reader w
  • glmnet 的公式接口

    在过去的几个月里 我参与了许多项目 在这些项目中我使用了glmnet适合弹性网模型的封装 它很棒 但与大多数 R 建模函数相比 其界面相当简陋 特别是 您必须给出响应向量和预测矩阵 而不是指定公式和数据框 您还会失去常规界面提供的许多生活质
  • 快速解析非本地时区中的 Python 日期时间,并根据夏令时进行调整

    我需要快速将 ISO 8601 日期时间字符串 字符串中没有时区 但已知位于美国 太平洋时区 转换为 numpydatetime64 object 如果我的机器处于美国 太平洋时间 我可以简单地运行numpy datetime64 s 但是
  • SQL 和 MySQL 有什么区别? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我是数据库新手 我想知道 两者之间有
  • 有关 Google Play 应用程序资产加密的问题

    从 v4 1 开始果冻豆 http developer android com about versions jelly bean html 谷歌为Google Play推出了新的应用程序资产加密功能 升级应用程序时似乎出现了一些问题 其中
  • Spread Operator 不适用于基于 Redux/ES6 的示例

    我正在尝试理解 Dan Abramov 发布的 Redux 在线教程 目前我正在使用以下示例 带有数组的Reducer组合 https egghead io lessons javascript redux reducer composit
  • Windows 窗体图表设置固定混合标签

    我想将标签固定在 x 或 y 轴上 因此它们始终是静态的 我还想将标签与数字和字符串混合在一起 如图所示 另外y轴从 1开始 我怎么能总是从0开始呢 Setting CustomLabels https msdn microsoft com
  • 汇编中的内存分配和寻址

    我正在尝试学习汇编 但有一些指令我不完全理解其目的 C code include
  • 如何获取 PHP 函数中的函数名称?

    是否可以 function test echo function name is test 准确的方法是使用 FUNCTION 预定义魔法常数 http www php net manual en language constants pr
  • 父级的 jQuery 父级

    我目前正在尝试查找元素的父元素的父元素 我点击了一个链接 该链接位于 td 我想得到 tr object 为什么 this parent parent 不起作用 会怎样 Thanks Brendan Edit 看来我的语法错误导致了整个事情
  • 在 Altair 折线图末尾添加标签

    所以我一直在尝试获取它 以便在每行末尾都有一个标签 给出国家 地区名称 然后我可以删除图例 尝试过玩transform filter但没有运气 我使用了这里的数据https ourworldindata org coronavirus so
  • Java 客户端中的 TLS 与 SNI

    目前正在就该问题进行讨论NHIN Direct 安全与信任工作组 http nhindirect org message list Security and Trust Workgroup 关于传统 SSL 产生的 IP 到域映射问题 ht
  • 如何在 selenium python 中的相对 css 选择器中使用父选择器

    我将尽力解释这个问题 这个问题是关于Python中的selenium 考虑这个例子 for row in driver find elements By CSS SELECTOR div style overflow hidden gt d
  • 使用 C# 的形式制作动画 Gif

    在我的项目中 每当执行一个长流程时 都会显示一个小表单和一个小动画 gif 文件 我使用 this Show 打开表单 使用 this Close 关闭表单 以下是我使用的代码 public partial class PlzWaitMes
  • 并行运行多个 JPA 事务

    我有两个 或更多 Java 线程使用 JPA 从 mysql 数据库创建 更新和删除实体 为了实现这一目标 我有一个 PersistenceLayer 类创建 EntityManager 并为我的所有实体提供保存 更新和删除方法 如下所示
  • 使用 maven 在 Google App Engine 上部署 SpringBoot / Angular 4

    我尝试在 Google Cloud 上部署应用程序 目前免费帐户 前端 Angular 和后端 Java JPA Spring Boot 是使用 Maven 在单个 jar 中构建的 在本地 在我的服务器上使用 Jenkins 和 Goog
  • 在 Common Lisp 中,如何以可移植的方式检查对象的类型

    我想定义一个专门处理具有无符号字节 8 元素的数组类型对象的方法 在 sbcl 中 当你 make array x element type unsigned byte 8 对象类由 SB KERNEL SIMPLE ARRAY UNSIG