问题标签 [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 投票
1 回答
638 浏览

lisp - 在 common lisp 中居中文本

我有一个要打印的字符串。打印时可以居中吗?

0 投票
5 回答
988 浏览

lisp - 从 s 表达式创建 lambda

我有一个 s 表达式绑定到 Common Lisp 中的一个变量:

现在我想创建一个函数,当调用它时,它会在定义它的范围内评估表达式。我试过这个:

但这两者都会产生一个问题:EVAL 将在顶层评估代码,因此我无法捕获表达式中包含的变量。请注意,我不能将 LET 表单放入 EVAL。有什么解决办法吗?

编辑:所以如果没有解决 EVAL 问题,还能怎么做?

编辑:有一个关于我到底想做什么的问题。我正在编写一个编译器。我想接受在定义表达式的词法环境中关闭变量的 s 表达式。将它写成宏可能确实更好。

0 投票
10 回答
37377 浏览

emacs - 最佳 Common Lisp IDE

我在 Emacs 中使用 Slime 作为 Common Lisp(或 OS X 上的 Aquamacs)的主要开发环境,但还有其他令人信服的选择吗?我听说过 Lispworks,但那 [或其他] 值得一看吗?或者有没有人有充分利用 Emacs 的技巧(例如,将它连接到 hyperspec 以便于参考)?

更新:Pascal Costanza 的高度评价 Lisp 指南的第 7 节给出了一个观点。但对我来说,SLIME似乎真的是它所在的地方

更多资源:

0 投票
3 回答
3130 浏览

lisp - 使用 SBCL 进行交叉编译

我在 Ubuntu 机器上运行 SBCL。我想写一个小程序,我想送给一个只运行 Windows 的朋友。在我的机器上将它交叉编译成“独立”Windows程序(即通常的运行时+核心组合)的最快方法是什么?

0 投票
8 回答
5080 浏览

lisp - 如何在 Lisp 中记忆递归函数?

我是一个 Lisp 初学者。我试图记住一个递归函数来计算Collat​​z 序列中的项数(对于Project Euler中的问题 14 )。到目前为止,我的代码是:

memoize 函数与On Lisp书中给出的函数相同。

与非记忆版本相比,此代码实际上并没有提供任何加速。我相信这是由于递归调用调用了函数的非记忆版本,这有点违背了目的。在那种情况下,在这里进行记忆的正确方法是什么?有没有办法让对原始函数的所有调用都调用记忆化版本本身,从而消除对特殊 m-collat​​z-steps 符号的需要?

编辑:更正了代码

这就是我的代码中的内容。在编辑之前,我错误地输入了:

看到这个错误给了我另一个想法,我尝试使用最后一个 defvar 本身并将递归调用更改为

这似乎确实执行了记忆(从大约 60 秒加速到 1.5 秒),但需要更改原始功能。是否有不涉及更改原始功能的更清洁的解决方案?

0 投票
7 回答
779 浏览

lisp - 为 Common Lisp 项目自动创建 ASDF 文件

有没有图书馆可以做到这一点?玩转 Common Lisp 似乎这将是降低新手入门门槛的最有用的东西之一。ASDF 似乎主要是为部署而设计的,而不是为快速原型设计和开发而设计的。关注 comp.lang.lisp 上的线程,似乎人们同意 CL 的包系统功能强大,但缺乏 Python 死的简单模块系统之类的易用性。从某种意义上说,它是为功率而不是可用性而设计的,这是失败的。

很高兴知道我是否错了。如果我是对的,我很惊讶没有人尝试在 ASDF 之上构建类似 Python 模块的系统。

0 投票
1 回答
550 浏览

lisp - 如何让 Ltk 显示用户正在编写的内容以及函数打印的内容?

函数类型如下:

我已阅读 Ltk 文档,但似乎没有任何文本小部件使​​用示例。

0 投票
2 回答
740 浏览

macros - Common Lisp 初学者:动态定义包的宏观问题

仍在努力了解有关宏的最佳实践。我正在尝试编写一个动态定义包的宏。

这仅适用于以下表达式:

但是因为这样的事情而惨遭失败:

或者

我了解大多数基本宏是如何工作的,但是如何实现这个让我无法理解。

0 投票
1 回答
340 浏览

eclipse - Cusp Eclipse 插件中的“Package LISP-UNIT 未加载”错误

我在使用 Cusp 插件的 Eclipse 中收到以下错误:

包 LISP-UNIT 未加载

我如何解决它?

0 投票
6 回答
1158 浏览

database - Common Lisp 中的函数持久化

是否有任何 Common Lisp 的持久性解决方案,例如 Elephant,允许函数持久性?目前我的应用程序在数据库上存储一个标识符,然后在它所在的函数表中进行搜索,但是这种方法不允许存储动态创建的函数。