没有Emacs的Lisp/Scheme解释器?

没有Emacs的Lisp/Scheme解释器?,lisp,scheme,Lisp,Scheme,我一直想自学口齿不清有一段时间了。然而,我听到的所有口译员都涉及到一些emacs风格。 是否有任何命令行解释器,以便我可以在命令行中键入: lispinterpret sourcefile.lisp 就像我可以运行perl或python一样 虽然我也希望更加熟悉Emacs(如果我不想在与使用Emacs的人一起工作时感到沮丧的话),但我宁愿将学习Emacs与学习Lisp分离 编辑:我实际上想了解使用Scheme的SICP,所以关于Scheme的答案会更有用。我只是不太熟悉它们之间的区别。保罗·格雷

我一直想自学口齿不清有一段时间了。然而,我听到的所有口译员都涉及到一些emacs风格。 是否有任何命令行解释器,以便我可以在命令行中键入:

lispinterpret sourcefile.lisp

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

虽然我也希望更加熟悉Emacs(如果我不想在与使用Emacs的人一起工作时感到沮丧的话),但我宁愿将学习Emacs与学习Lisp分离

编辑:我实际上想了解使用Scheme的SICP,所以关于Scheme的答案会更有用。我只是不太熟悉它们之间的区别。

保罗·格雷厄姆使用的Checkout CLISP


Direct

您尝试过Allegro CL吗?

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

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


(另外,请查找加州大学伯克利分校CS61A播客并收听,同时阅读SICP)

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


SBCL是一流的开源软件。

@Nathan:我已经升级了常见的Lisp链接,因为您询问了Lisp(特别是关于Emacs Lisp的)。然而,公共Lisp和Scheme有很大的不同。为其中一个编写的程序不太可能在另一个上运行


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

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

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

我建议你看看这个,看看我的意思,尽管在这一点上可能有点过时


如果问题是你(认为你)不喜欢Emacs,我郑重建议你尝试学习它。认真地不,真的,我是认真的。但是,也有替代方案,例如由商业Lisp实现(如and)提供的IDE(可免费试用),或者一个名为的Eclipse插件

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

#!/usr/bin/clisp

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

任何“解释器”都不需要emacs


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

如果您正在寻找与SICP一起工作的方案,请查看MIT/GNU方案


看来scheme shell适合您的目的。
看看

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

以下是如何在命令行上运行多个实现:

  • 方案

  • mit方案

  • scheme48

  • rs

  • racket
    (但我建议尝试drracketide,特别是对于初学者。)

  • guile

  • bigloo

  • csi

  • gsi

  • gosh

  • IronScheme.Console

  • kawa
    java-kawa.repl

  • 盗窃罪

  • scm


clisp在使用NCourses支持(TAB completion bash样式)从hyperspec获取文档等进行编译时特别适合交互使用。如果使用“ie”,您的意思是“i.e.”:表示“id est”(英文:“即”)。我想你应该说“例如”(exempli gratia=example)。@crashmstr:Allegro有一个免费的试用版,如果你想学习该语言,它应该是完全足够的。MIT/GNU方案使用一个与Emacs非常相似的解释器。附带的Edwin编辑器类似于Emacs,REPL有一些类似于Emacs的命令,但这不是全部。有了麻省理工学院的Scheme,他不用学习Emacs就可以学习Scheme。有时这些REPL的“行编辑”非常糟糕。点击左箭头并获得^[[D]是很糟糕的。在这种情况下,您可以使用rlwrap,它使用读线支持(使用
rlwrap
运行它)。您的读线设置(~/.inputrc文件)将生效,因此如果您想使用,您甚至可以使用readline的vi模式。