Common lisp :KEY 参数使用

2023-11-27

The :KEY参数包含在 Common Lisp 附带的一些函数中。我发现的所有关于它们的描述都没有帮助,并且:KEY在搜索引擎中很难搜索,因为“:”通常被忽略。

例如,它将如何使用member函数允许两者:TEST and :KEY?


The :key该论点在引言部分中以某种神秘的方式记录下来序列库(第 17 节)在 Common Lisp HyperSpec 中,在17.2.1 满足双参数测试17.2.2 满足单参数测试。这是因为它的行为在整个库中是一致的。

很简单,:key指定应用于正在处理的一个或多个序列的元素的函数。使用函数的返回值来代替这些元素。在某些函数式语言的术语中,这称为“投影”。元素通过关键函数进行投影。你可以想象默认的按键功能是identity,如果您不提供此参数。

需要理解的一件重要的事情是,在接受某些对象参数和序列的函数中(例如搜索序列以查找对象出现的函数),关键函数是not应用于输入对象;仅针对序列的元素。

第二个重要的事情是:key不替代该项目,仅替代用于标识该项目的值。例如,搜索序列中的项目的函数将从序列中检索原始项目,即使序列的项目通过以下方式投影到替代键:key。 key 函数检索到的值仅用于比较。

E.g. if obj-list是一个对象列表,这些对象的名称可以通过称为的函数访问obj-name,我们可能会寻找名为的对象"foo" using (find "foo" obj-list :key #'obj-name)。功能obj-name应用于每个元素,并将其结果与字符串进行比较"foo"(该功能未应用到的地方)。如果至少存在一个具有该名称的对象obj-list,然后返回第一个这样的对象。

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

Common lisp :KEY 参数使用 的相关文章

  • SQL Server - 实现序列

    我有一个系统 要求我在数据进入数据库之前拥有数据的 ID 我正在使用 GUID 但发现它们太大而无法证明其便利性 我现在正在尝试实现一个序列生成器 它基本上为给定的上下文保留一系列唯一的 ID 值 代码如下 ALTER PROCEDURE
  • Common Lisp 中重置状态

    新手 Common Lisp 问题在这里 有没有办法重置环境状态 我的意思是 是否有一些命令可以使 REPL 恢复到启动后的相同状态 即取消所有变量 函数等 或者如果这不在 Common Lisp 标准中 是否有一些扩展在 SBCL 我使用
  • Python:检查对象是否是序列

    在 python 中 有没有一种简单的方法来判断某些东西是否不是序列 我尝试这样做 if x is not sequence但Python不喜欢那样 iter x 将提出一个TypeError if x不能迭代 但该检查 接受 集合和字典
  • 在 Parenscript 中使用 regex(正则表达式)

    我正在尝试 Parenscript 在尝试使用正则表达式函数时 我得到了意外的输出 例如 参考手册 https common lisp net project parenscript reference html shows regex f
  • 我应该在 Common Lisp 中使用哪些正则表达式库? [关闭]

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

    我正在寻找一种算法 可以在基因组序列中找到短串联重复 基本上 给定一个非常长的字符串 它只能包含 4 个字符 ATCG 我需要找到彼此相邻的 2 5 个字符长之间的短重复 前任 TACATGAGATCATGATGATGATGATGGAGCT
  • R - 从排序数据构建新变量

    这是更新 后续this https stackoverflow com questions 55639062 detecting sequence by group and compute new variable for the subs
  • Hibernate JPA 序列(非 Id)

    是否可以对某些列使用数据库序列不是标识符 不是复合标识符的一部分 我使用 hibernate 作为 jpa 提供程序 并且我有一个表 其中有一些生成值的列 使用序列 尽管它们不是标识符的一部分 我想要的是使用序列为实体创建新值 其中序列的列
  • 创建以字母数字开头的 Oracle 序列

    我想创建以字符开头的序列inv并增加 1 的价值观 INV01 INV02 INV03 etc CREATE SEQUENCE invoice nun START WITH INV INCREMENT BY 1 只能创建整数值序列 所以声明
  • 递归地添加数字序列

    嘿 我想用一些递归来刷新我的想法 我想添加从 开始 到 结束 含 的所有数字 即如果开始是 1 结束是 5 那么答案就是 1 2 3 4 5 15 到目前为止我已经得到了这个 int calc int start int end if st
  • 有没有一种简单的方法可以使用 Common Lisp 中的 Python 库?

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

    我正在字节编译一个模块 它给了我这个警告 Warning cl package required at runtime 为什么这是一个警告 我很清楚我正在使用cl包裹 事实上有一个 require cl 模块中的语句 使用有什么问题吗cl
  • 截断表后序列不会重置

    我在截断表后使用 SELECT lastval 来获取错误的序列号 当我截断表时 我使用 SELECT lastval 我得到了错误的 ID Use the TRUNCATESQL 命令 对于单个表 语法如下 TRUNCATE TABLE
  • 在我的 Linux 机器上安装 lisp

    我使用 Vim 作为我的编辑器 Practical common Lisp 建议安装 Lispbox 我不知道如何使用 emacs 不知道如何用那个 T T 运行 lisp 代码 之后我找到了一个名为 limp vim 的 vim lisp
  • 宏、Clojure 与 Common Lisp

    我和我的一些朋友正在开发一个新平台 我们想用 lisp 构建它 主要吸引力是宏 我们都使用 Common Lisp 但我想探索 Clojure 的选择 当我提出这一点时 其中一位说宏观体系 较弱 我想知道这是否属实 以及在哪些领域 就您可以
  • Lisp 中的 (定义 (平均 ....))

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

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

    我一直在阅读有关 F 3 0 类型提供程序的内容 例如here http msdn microsoft com en us library hh156509 aspx 并且它们似乎基于一种编译时代码生成 在这方面我想知道它们与 Lisp 宏
  • F# 正确使用序列缓存

    我正在尝试将 Seq cache 与我制作的函数一起使用 该函数返回最多为 N 的素数序列 不包括数字 1 我无法弄清楚如何将缓存的序列保留在范围内 但仍然使用它在我的定义中 let rec primesNot1 n 2 n gt Seq
  • 从 CCL 检索(加载)源代码?

    我打了电话 load code lisp 用CCL 然后不小心删除了code lisp 有什么办法可以找回源代码吗 CCL 在内存中是否有它 这是一个非常特殊的功能 这里只为克洛祖尔CL 该代码在其他地方不起作用 这在 CCL IDE 中对

随机推荐

  • 抑制 Roslyn 代码分析器的问题

    有什么方法可以抑制 Roslyn 分析仪的问题吗 我使用即时分析器项目类型 如果用户想要的话 我想抑制这些问题 而且它必须是永久的 如果我重新打开 Visual Studio 仍必须应用相同的抑制规则 您可以采用与忽略普通 C 编译器警告完
  • 如何在 OpenGL (ES) 中正确渲染重合多边形

    据我了解 通过在 OpenGL ES 中设置深度函数 可以控制重叠几何图形在 3D 场景中的渲染方式 我用gl depthFunc gl LEQUAL webgl 在我的代码中 然而 当两组多边形重合且颜色不同时 生成的表面将是两种颜色的任
  • 利用sandybridge的硬件真随机数生成器?

    我想知道是否有办法利用英特尔 Sandy Bridge CPU 中基于新硬件的真数生成器 我读到英特尔的 MKL 数学内核库 公开了此功能 但这需要 MKL 套件和英特尔编译器 最终非常昂贵 是否有另一种方法可以在我的 C 代码中使用硬件随
  • 如何使用 JaXB 获取验证事件?

    我尝试使用 Jaxb 获取变量中的验证消息 尝试这里的例子http docs oracle com cd E17802 01 webservices webservices docs 1 6 api javax xml bind Unmar
  • 我是谁?如何使用 Microsoft Office 权限/用户权限

    Microsoft Office 文档 我的情况是 PowerPoint 演示文稿 可以具有受限的权限 如何以编程方式找出我的代码对给定文档拥有哪些权限 我在 MSDN 上能找到关于这个主题的所有内容是 http msdn microsof
  • 转换 unnest() 结果时 NULL emements 丢失

    我偶然发现了非常奇怪的行为unnest 在扩展数组后进行转换时 介绍 使用 unnest 可以使用三种基本语法变体 1 SELECT unnest 1 NULL 4 int AS i 2 SELECT i FROM unnest 2 NUL
  • MVC 不验证空字符串

    我有 razor 文件 其中定义了带有字符串文本框的 html 表单 using Html BeginForm Html ValidationSummary true fieldset legend Product legend div c
  • 如何使用 dom 解析器添加 php 标签

    我创建了一些具有 php doms 功能的 HTML 模板 现在我想在我的模板中添加一些 php 标签 IE input this gt dom gt createElement input input gt setAttribute ty
  • 使用 ggplot2 按日期着色的散点图

    我正在尝试绘制按日期着色的散点图 目前我正在执行以下操作 但我无法找到一种方法以良好的可读格式获取图例的日期 即使图表看起来像我想要的那样 例如 我尝试将它们格式化为 20140101 但全年都在一个小范围内 即 data cars car
  • Unicode 表情符号的 JavaScript 正则表达式

    我想用图标替换字符串中的所有表情符号 我成功替换了这些 D P 3 lt 3 XP etc 到图标 所以如果用户写 在字符串中 它将被替换为图标 但我有一个问题 如果用户直接粘贴 Unicode 等于 我需要什么 如何将 Unicode 图
  • Python解析日志文件以实时提取事件

    我有一个将消息记录到文件的进程 我想实现另一个进程 在Python中 来解析这些日志 当它们写入文件时 过滤我感兴趣的行 然后根据第一个进程的状态执行某些操作 在我自己写一些东西之前 我想知道 Python 中是否有一个库可以做这样的事情
  • 在 t-SQL 中将值与 NULL 进行比较

    我很好奇在 t SQL 中将 NULL 与值进行比较是否合法 例如 如果我有 WITH ctx AS SELECT 123 AS n0 NULL AS n1 SELECT n0 FROM ctx WHERE ctx n1 lt 130 在这
  • React-Native 上另一个组件的访问方法

    我有 2 个组件A and B如下 class A extends Component testMethodA render return
  • 为什么类不能扩展其中出现的静态嵌套类?

    这个班 public class OuterChild extends OuterChild InnerParent public static class InnerParent 编译失败 javac OuterChild java Ou
  • 使用 PowerShell 从 SFTP 服务器下载文件

    我需要使用 PowerShell 脚本将文件从 SFTP 服务器下载到本地计算机 用于下载的 API 库需要能够监视传输结果 记录传输以及归档 移动下载的文件 提前致谢 PowerShell 或 NET 框架不支持 SFTP 所以你必须使用
  • Eclipse 自动完成 primefaces 标签 [重复]

    这个问题在这里已经有答案了 我正在使用 Eclipse 来处理 PrimeFaces 如下所示
  • 在R图形中,绘制字符(pch)16和19之间有什么不同?

    除了提到 填充 与 固体 之外 我找不到任何文档 library graphics plot new points 48 5 pch 19 points 52 5 pch 16 Edit Winston Chang的解释相当彻底地回答了我的
  • 如何用matplotlib画一条线?

    我找不到一种方法来绘制任意线matplotlibPython 库 它允许绘制水平线和垂直线 带有matplotlib pyplot axhline and matplotlib pyplot axvline 例如 但我不知道如何通过两个给定
  • SVN(服务器 - 预提交挂钩):了解正在提交的文件列表

    我想知道如何获取在预提交挂钩上提交的文件列表 如果该列表不包含特定路径中的特定文件 那么我想拒绝提交 钩子脚本应该使用svnlook命令与否svn The svnlook命令可以采取交易号提交的 如果这是预提交挂钩 则需要使用事务号 如果这
  • Common lisp :KEY 参数使用

    The KEY参数包含在 Common Lisp 附带的一些函数中 我发现的所有关于它们的描述都没有帮助 并且 KEY在搜索引擎中很难搜索 因为 通常被忽略 例如 它将如何使用member函数允许两者 TEST and KEY The ke