问题标签 [common-lisp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2024 浏览

return-value - 是否有任何 Common Lisp 函数返回 3 个值?

是否有任何 Common Lisp(内置)函数返回超过 2 个值?我知道很多返回 2,但我想不出一个返回 3。

(我在这里看到一个关于返回超过 2 个值的评论,并试图考虑 CL 这样做但不能这样做的情况。)

0 投票
2 回答
442 浏览

common-lisp - 我可以在 defstruct 中引用其他插槽吗?

在普通的 lisp 中,我注意到我可以这样写:

当我打电话时(foo)6会打印出来。所以参数c可以引用为a和设置的值b。但我似乎无法找到一种方法来做类似的事情defstruct。就像是:

有没有办法做到这一点?

0 投票
9 回答
6510 浏览

lisp - 在 Common Lisp 中,为什么 (if) 语句的多表达式体需要 (progn)?

这只是 1950 年代遗留下来的一点历史遗留问题,还是从语法上讲,为什么 (if) 形式的多表达式主体需要 (progn)?为什么不能将多个表达式包装在一组括号中,例如 with (let):

编写一个宏来测试每个主体以首先查看它是否是一个列表,然后如果它是,它的第一个元素是否也是一个列表(因此不是函数调用)然后包装它的子组件似乎是微不足道的相应地在 (progn) 内。

0 投票
5 回答
683 浏览

lisp - LISP 变量交换

如何在不使用第三个变量的情况下在 LISP 中交换两个变量?

0 投票
5 回答
1332 浏览

lisp - 如何运行 Sutton 和 Barton 的“强化学习”Lisp 代码?

我最近阅读了很多关于强化学习的内容,我发现“强化学习:简介”是一本很好的指南。作者为他们的许多工作示例提供了有用的源代码。

在我开始这个问题之前,我应该指出我对 lisp 的实际知识很少。我知道基本概念及其工作原理,但我从未真正以有意义的方式使用 lisp,所以很可能我只是在做一些令人难以置信的 n00b-ish。:)

另外,作者在他的页面上声明他不会回答有关他的代码的问题,所以我没有联系他,并认为 Stack Overflow 会是一个更好的选择。

我一直在尝试在 linux 机器上运行代码,同时使用 GNU 的 CLISP 和 SBCL,但无法运行它。我不断使用任一解释器获取完整的错误列表。特别是,大多数代码似乎使用了包含在文件“utilities.lisp”中的许多实用程序,该文件包含以下行

:ccl 似乎是指某种基于 Mac 的 lisp 版本,但我无法确认这一点,它可能只是其他一些代码包。

我尝试删除这个特定的部分(将行更改为

但这只会产生更多错误。

有人知道我如何运行这段代码吗?我只是对所有的lisp一无所知吗?

更新 [2009 年 3 月]:我安装了 Clozure,但仍然无法让代码运行。

在 CCL 命令提示符下,命令

导致以下错误输出:

不幸的是,我还在学习 lisp,所以虽然我感觉有些东西没有完全定义,但我并不真正理解如何阅读这些错误消息。

0 投票
6 回答
16488 浏览

common-lisp - Common-lisp 中最好的 Web 框架?

最好的 common-lisp web 框架是什么?

我正在寻找适合开发商业 Web 应用程序并能够处理类似于 Stack Overflow 的高流量站点的东西。它还应该具有内置的会话处理和其他类似功能。

0 投票
3 回答
39101 浏览

syntax - Common Lisp 中的 eq、eql、equal 和 equalp 有什么区别?

Common Lisp 中的 ,​​ 和 ,eq有什么eql区别?我知道他们中的一些检查类型,其中一些检查类型以及所有这些,但是哪个是哪个?什么时候比其他更好用?equalequalp

0 投票
5 回答
1131 浏览

lisp - 以下使用 gensym 的 Common Lisp 宏有什么问题?

学习 Common Lisp(使用 GNU CLISP 2.43).. 所以可能是一个菜鸟错误。示例是“打印 x 和 y 之间的素数”

do-primes-v2 完美运行。

接下来我尝试使用 gensym 来避免宏扩展中的命名冲突 - do-primes-v3。但是我被困在一个

尝试使用宏扩展来查看我是否可以发现错误,但我不能。

0 投票
16 回答
36267 浏览

lisp - Common Lisp 中的 LET 与 LET*

我了解 LET 和 LET* (并行与顺序绑定)之间的区别,从理论上讲,它非常有意义。但是在任何情况下你真的需要 LET 吗?在我最近查看的所有 Lisp 代码中,您可以将每个 LET 替换为 LET* 而无需更改。

编辑:好的,我明白为什么有些人发明了 LET*,大概是作为一个宏,早在什么时候。我的问题是,鉴于 LET* 存在,LET 是否有理由留下来?你写过任何实际的 Lisp 代码,其中 LET* 不能像普通的 LET 那样工作吗?

我不赞成效率论点。首先,识别 LET* 可以编译为与 LET 一样高效的情况似乎并不难。其次,CL 规范中有很多东西看起来根本不像是围绕效率设计的。(你最后一次看到带有类型声明的 LOOP 是什么时候?这些很难弄清楚我从未见过它们使用过。) 在 1980 年代后期 Dick Gabriel 的基准测试之前,CL非常缓慢。

看起来这是向后兼容的另一种情况:明智的是,没有人愿意冒险破坏像 LET 这样基本的东西。这是我的预感,但令人欣慰的是,没有人有一个我错过的愚蠢简单的案例,LET 使一堆事情比 LET* 容易得多。

0 投票
2 回答
3581 浏览

python - 如何以编程方式将注释插入 Microsoft Word 文档?

寻找一种以编程方式将注释(使用 Word 中的注释功能)插入 MS Word 文档中特定位置的方法。我更喜欢一种可以在最新版本的 MS Word 标准格式中使用并且可以在非 Windows 环境中实现的方法(最好使用 Python 和/或 Common Lisp)。我一直在查看 OpenXML SDK,但似乎无法在那里找到解决方案。