16

一段时间以来,我一直想自学 Lisp。但是,我听说过的所有解释器都包含一些 emacs 风格。是否有任何命令行解释器,以便我可以在命令行中输入:

lispinterpret 源文件.lisp

就像我可以运行 perl 或 python 一样。

虽然我还想更加熟悉 Emacs(如果只是为了在与使用 Emacs 的人一起工作时不会感到沮丧),我宁愿将学习 Emacs 与学习 Lisp 分离。

编辑:我实际上想关注使用Scheme的SICP,所以关于Scheme的答案会更有用。我只是不太熟悉这些差异。

4

12 回答 12

13

您也可以尝试DrScheme,它虽然不完全是独立的解释器,但也不是 emacs :)

它基本上是一个简单的 IDE,它有一个可以输入代码的区域,可以作为文件执行,然后另一个区域是可以与之交互的正在运行的解释器。

(另外,找到 UC Berkeley CS61A 播客并收听它们,以及阅读 SICP)

于 2008-08-13T11:27:55.340 回答
7

看起来 Steel Bank Common Lisp (SBCL) 也可以满足您的需求:

http://www.sbcl.org/manual/#Shebang-Scripts

SBCL 既是一流的又是开源的。

于 2008-08-13T11:55:48.700 回答
6

结帐 CLISP wiki-link即。被保罗格雷厄姆使用

直接链接

于 2008-08-13T11:11:42.847 回答
5

我经常编写以这一行开头的 lisp shell 脚本:

#!/usr/bin/clisp

然后你甚至不需要在命令行输入“lispinterpret”。只需将脚本标记为可执行文件并直接运行即可。

于 2008-09-15T16:36:10.477 回答
4

我熟悉的大多数方案解释器都可以从命令行运行。(下面的大部分列表是从 Alexey Radul 的Scheme Implementation Choices页面的比较表中提取的。在 schemewiki 上更广泛的列表,但该页面没有立即提供命令行调用语法。)

以下是在命令行运行多个实现的方式:

于 2013-02-06T14:05:09.420 回答
3

如果您正在寻找与 SICP 一起使用的 Scheme,请查看 MIT/GNU Scheme

http://groups.csail.mit.edu/mac/projects/scheme/

http://www.gnu.org/software/mit-scheme/index.html

于 2008-10-10T19:01:31.737 回答
2

Common Lisp 使用最广泛的 IDE,特别是在社区的自由软件子集中,实际上是SLIME,它在 Emacs 上运行。您可以使用您喜欢的任何 CL 编译器并按照您描述的方式调用 Lisp 源文件,但如果您这样做,您将无法利用许多在开发应用程序时非常有用的 Lisp 动态特性。

我建议你看一下这个SLIME 演示视频以了解我的意思,尽管此时它可能有点过时了。

如果问题是你(认为你)不喜欢 Emacs,我认真地建议你尝试学习它。严重地。不,真的,我是这个意思。但是,还有其他替代方案,例如由商业 Lisp 实现提供的 IDE,例如AllegroLispworks (可免费试用),或名为Cusp的 Eclipse 插件。

于 2008-08-27T23:54:23.033 回答
1

您是否从http://www.franz.com/尝试过 Allegro CL ?

于 2008-08-13T11:13:43.433 回答
1

@Nathan:我已经升级了 Common Lisp 链接,因为您询问了 Lisp(尤其是参考 Emacs Lisp)。然而,Common Lisp 与 Scheme 有很大不同。为一个人编写的程序不太可能在另一个人身上运行。

正如您所提到的,SICP 用于学习 Scheme,而不是 Lisp(或者至少不是 Common Lisp 和 Emacs Lisp)。原则上有一些重叠,但是您不能简单地从 SICP 剪切和粘贴代码并期望它在任何 Common Lisp 或 Emacs Lisp 系统上运行。:-)

于 2008-08-14T00:45:14.373 回答
1

没有“解释器”需要 emacs。

此外,emacs 可以以无头方式运行 elisp。

于 2008-10-10T18:55:32.013 回答
1

似乎方案外壳适合您的目的。看看http://www.scsh.net/index.html

于 2008-11-24T23:33:17.597 回答
0

lisp 的另一个很好的方言是cmucl。他们过去喜欢吹嘘自己是“最快的”口齿不清。

于 2008-08-14T00:49:17.780 回答