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

emacs - 我无法关闭最后一个括号并在 Slime 中使用 lisp-mode 将我的函数发送到 REPL

这是一个非常简单的问题。我已经安装了 Emacs 22.2.1(来自 Ubuntu (9.04) repo,我从他们主页上的 repo 下载了 Slime-current。

我按照粘液提供的说明进行操作,它可以工作。我可以启动粘液并按预期使用它。

但是,当我进入 lisp-mode (Mx lisp-mode) 时,我无法再与 REPL 交互。我输入的任何内容都不起作用,当我按下回车键时,光标只会移动到下一行。

有没有人可以解决这个问题?

编辑:

关于我如何使用 Emacs 的问题。是的,我启动 Emacs,然后用 Mx slime 输入 slime。我读到我可以通过接下来使用 Mx lisp-mode 进入 lisp 模式来获得正确的语法突出显示。

它确实提供了语法高亮,但正如下面所指出的,它用于编辑文本文件,而不是与 REPL 交互。

我最近还读到将以下内容放在我的 .emacs 文件中将启用语法突出显示(它不起作用)。

所以我想我的问题需要修改。由于 lisp-mode 并不是简单地为 slime 启用 lisp 功能,那么我如何在 slime 中启用语法高亮?

编辑2:

答案在评论中提供。

启动粘液然后打开/创建一个新文件来使用。这是打算使用 lisp-mode 的缓冲区。

该函数被编写、突出显示并发送到 REPL。输出出现在底部。

两者应该合作,而不是融合。

0 投票
4 回答
4414 浏览

tree - 在 Common Lisp 中绘制树

这个问题可能有一个令人尴尬的简单答案,但是在 Common Lisp 中是否有正确的方法来格式化/绘制树?我已经尝试了几本书以及谷歌搜索,但问题似乎落在了搜索词的裂缝之间。

提前致谢!

0 投票
1 回答
181 浏览

lisp - Allegro Webactions 不在 SBCL 上提供服务。调试方法或可能的解决方案?

我正在尝试在 SBCL 上启动和运行 Portable Allegro Serve 和 Webactions。到目前为止,我已经设法让 paserve 正确地服务页面。但是 webactions 在控制台中出现以下警告:

关于为什么会发生这种情况的任何想法?或者,关于我如何闯入这个来检查/调查正在发生的事情的任何想法?

软件版本:在 debian 2.6.26 上运行的 SBCL 1.0.28,PAServe 1.2.47。

0 投票
2 回答
1124 浏览

macros - 从 On Lisp 学习 Scheme 中的宏

我真的很想学习 Scheme 宏。我浏览了“On Lisp”的内容,很多章节都专门介绍了 Lisp 宏。但是我不知道常见的lisp。我可以用它来学习 Scheme 宏吗?

0 投票
6 回答
12847 浏览

lisp - Lisp 风格:setq 与 setf

Peter Norvig在第 50 页的《人工智能编程范式》中提到,在选择使用 setq 或 setf 将变量更新为值时,需要权衡特异性和一致性之间的关系。你有什么建议吗?你有没有遇到过比可读性更重要的情况?

0 投票
6 回答
3848 浏览

variables - Common Lisp 与 Scheme 中函数和变量的独立命名空间

Scheme 为所有变量使用一个命名空间,无论它们是绑定到函数还是其他类型的值。Common Lisp 将两者分开,因此标识符“hello”在一个上下文中可能指代一个函数,而在另一个上下文中指代一个字符串。

(注1:这个问题需要上面的一个例子;随意编辑它并添加一个,或者用它给原作者发电子邮件,我会这样做。)

但是,在某些情况下,例如将函数作为参数传递给其他函数,程序员必须通过使用明确区分他指定的是函数变量,而不是非函数变量,#'如下所示:

我一直认为这有点像疣,但我最近遇到了一个论点,认为这实际上是一个特性:

...重要的区别实际上在于形式的语法,而不是对象的类型。在不知道所涉及的运行时值的情况下,很明显函数形式的第一个元素必须是函数。CL 接受了这一事实并将其与宏和特殊形式一起成为语言的一部分,这些形式也可以(并且必须)静态确定。所以我的问题是:当函数名的主要用途是出现在变量名很少出现的地方时,为什么你希望函数名和变量名在同一个命名空间中?
考虑类名的情况:为什么一个名为 FOO 的类要阻止使用名为 FOO 的变量?我唯一一次用 FOO 来引用这个类是在需要类名的上下文中。如果在极少数情况下我需要获取绑定到类名 FOO 的类对象,则可以使用 FIND-CLASS。

从经验来看,这个论点对我来说确实有意义。Haskell 中也有类似的情况,字段名称也是用于访问字段的函数。这有点尴尬:

这可以通过一些额外的语法来解决,NamedFieldPuns扩展特别好:

那么,对于这个问题,除了一致性之外,Common Lisp 与 Scheme 以及一般而言,所有值的单个命名空间与函数和非函数值的单独命名空间的优点和缺点是什么?

0 投票
6 回答
14296 浏览

command-line - 在 Common Lisp 中获取命令行参数

如何在 Common Lisp 中获取命令行参数(特别是在 GNU 中,如果有任何差异)?

0 投票
2 回答
2496 浏览

common-lisp - 如何将 Web 应用程序连接到 Hunchentoot

我正在编写一个需要 hunchentoot 网络服务器的网络应用程序。我对 hunchentoot 或任何 Web 服务器几乎一无所知,我想知道我用 Common Lisp 编写的应用程序如何为 Web 客户端提供页面。我见过一些优秀的例子(例如Hunchentoot Primer、 Lisp for the Web),尤其是。Hunchentoot 页面上列出的那个。你知道我在哪里可以找到更多这样的例子吗?谢谢。

0 投票
7 回答
3383 浏览

open-source - 寻找迷你语言(即 DSL)的 (c)lisp 示例

阅读编写良好的代码似乎可以帮助我学习一门语言。(至少它与 C 一起使用。)[删除问题的“过度指定”部分]

我对 lisp 的声誉特别感兴趣,它是一种适合创建特定于问题的迷你语言或 DSL 的语言。当然,该程序应该是开源的,并且最好可以通过网络获得。

我用谷歌搜索并找到了这个例子:

http://lispm.dyndns.org/news?ID=NEWS-2005-07-08-1

有人还有吗?(而且,是的,我将继续阅读“实用通用 Lisp”。)

11 小时后(仅 11 小时!):谢谢大家。多么美妙的网站,多么好的答案和技巧啊!

0 投票
6 回答
3623 浏览

lisp - lisp 库的好来源?

是否有用于 lisp 的 PEAR 类库?我希望有,但我在某处读到 lisp 的缺点之一是它缺乏严肃的库。我觉得这很难相信,因为 lisp 现在已经有半个世纪的历史了。