问题标签 [clisp]

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 投票
1 回答
363 浏览

common-lisp - Lisp 没有反转我的列表

我正在 Lisp 中做一些功课,使用 clisp 进行测试,我正在加载此代码并在 clisp 中运行

我对 Lisp 有点陌生,但是这段代码根本没有反转thelist,我的输出是:

我的代码的第一行说(reverse thelist),为什么它不反转第一个打印语句?我错过了什么吗?

0 投票
2 回答
21768 浏览

lisp - defvar、defparameter、setf 和 setq 有什么区别

我发现了一个类似的问题

但我不太明白这个解释。

因此,我尝试使用以下示例运行 clisp:

我发现的完全一样。

我想不通他们有什么不同?

0 投票
1 回答
118 浏览

lisp - 如何要求超简单的香草标准输入?

我发现当我在 clisp 程序的标准输入中输入这样的一行时......

...光标似乎在跳舞,我是否在做并不重要

或者

也就是说,当我键入每个右括号时,光标会短暂悬停在匹配的左括号上。如果我提前输入,有时会重新回显到该点之前输入的整行内容。

我想这很好,但我是通过一个 pty 执行此操作的,并且我希望该 pty 的输入(显示在 clisp 程序的标准输出和错误输出上的内容)是“干净的”。没有舞动的光标,没有线条的重新回响。

我想我可以使用命名管道进行输入和输出,但我想通过 pty.

如何使标准输入成为纯粹的香草?没有跳舞光标?没有预先输入的回声?我可以在某处修改配置文件吗?

0 投票
2 回答
182 浏览

lisp - 删除重复项时将槽值指定为键

下面的代码做我想要的:

但是有没有办法做到这一点而不必在第 13 行编写函数?是否有一种速记方法可以将类实例中的插槽值指定为键?

当然,以下内容会出现语法错误,但它给出了我正在寻找的大致概念。

0 投票
2 回答
281 浏览

lisp - 闭包如何引用自身?

假设我有一个普通的闭包,像这个简单的样本:

假设我(funcall)三次执行该闭包的实例,并且在第三次执行的中间,这个闭包想要将自己保存在某个地方(例如在哈希表中)。然后我暂时没有(funcall)这个实例。然后我从哈希表中检索这个实例并(funcall)再次检索,得到返回值 4。

闭包中的函数是如何引用自身的,所以它可以将自己保存在那个哈希表中?

编辑1:这是一个更详细的例子。我通过将闭包作为参数传递给自身来实现目标。但我希望闭包能够自行完成所有这些操作,而无需进行自我参数化。

编辑2:是的,我知道我可以使用宏将函数的名称作为其第一个参数,然后使用该宏而不是(funcall),但我仍然想知道如何让闭包引用它自己的实例。

编辑 3:响应 SK-logic 的友好建议,我做了以下事情,但它没有做我想要的。它将三个新的闭包推入堆栈,而不是对同一个闭包的三个引用。看看当我从堆栈中弹出它们时,调用的值是 1、1 和 1 而不是 6、7 和 8?

编辑 4: Jon O 的建议完全符合要求。这是代码和输出:

编辑 5: Miron 的建议也达到了目标,实际上使代码更具可读性:

0 投票
1 回答
483 浏览

emacs - 设置 CLISP/SLIME 时,eval-buffer 不执行任何操作

我正在使用以下教程:

http://www.pchristensen.com/blog/articles/installing-clisp-emacs-and-slime-on-windows-xp/

我已经设置了所有目录并下载了所有必要的文件。但是,在第 4 步中。我使用的是 emacs 命令“eval-buffer”。我输入我的设置,运行“eval-buffer”,收到反馈(在底部栏中),并假设一切正常。然后,当我运行 Mx "slime" 时,我收到了错误:

我以为我在 .emacs 文件中输入了错误的内容,所以我重新编辑了它。但是,现在当我尝试运行 Mx "eval-buffer" 时,我没有收到任何反馈,而且我不相信我的新代码会执行。

顺便说一句,我的文件是:

0 投票
1 回答
1071 浏览

lisp - 如何编译一个使用 cl-ppcre 的 clisp 程序?

在 Debian 上,我正在尝试编译一个使用 cl-ppcre 包的 CLISP 程序。

一个简化的示例程序(我将其称为变体 1)如下所示:

当我这样运行它时::

我懂了:

但是当我试图编译它时:

我懂了:

我在成功运行和使用变体 2 编译失败时得到了类似的结果:

我需要做什么才能编译它?

如果它可能有助于找到答案,我查看了由运行变体 1 触发的文件 I/O。我使用了 strace,并对输出进行切片和切块以仅显示相关文件和目录的名称。当我这样做时:

我得到了这个输出:

那我该怎么办?

0 投票
1 回答
1460 浏览

lisp - 我如何要求 Lisp 编译器忽略(标签品种)函数?

我一直盯着斯蒂尔的Common Lisp 语言,直到我脸色发青,仍然有这个问题。如果我编译:

有时候是这样的:

很公平。那么如何让编译器忽略函数 y?我试过这个:

它奏效了:

但不知何故,我认为这不是警告所暗示的。

我该怎么办?

0 投票
1 回答
811 浏览

common-lisp - 读取带有提示的行后的换行状态似乎没有更新

我正在使用 GNU CLISP 并且因为这个程序而变得疯狂:

输出类似:

但是,如果我在 (read-line) 之前打印一个提示,我会得到一个虚假的空行:

例如:

我曾尝试在 read-line 之前和之后使用 (finish-output) ,但它没有帮助。我不明白那个空行是从哪里来的。我怀疑 CLISP 中存在错误。

0 投票
2 回答
684 浏览

sorting - 在 Clip 中排序

我想在 clisp 中编写插入排序和合并排序。输入将是一个平面的数字列表。如何递归地编写这两种类型(最好不使用 lambda)?对于插入排序,我正在考虑创建一个函数,该函数将列表和整数(这意味着感兴趣的元素的当前索引)作为参数,并使用 setf 和 nth 来操作列表。我知道其中还应该有另一个递归函数,但是就像......我只是对这么多要存储的函数和变量感到困惑。

对于合并排序,我完全不知道。