我正在寻找一个Scheme或LISP版本,可以用来恢复一些丢失的Lisp开发技能。某些Web功能会很好,但不是必需的。
我研究了Plt和MIT方案,虽然两者看起来都不错,但Plt似乎功能更丰富。我也看过Lisp的实现,但是所有这些看起来都很昂贵。
我赞成免费/廉价的实现,因为这确实很可能只是偶尔的业余编程。您有什么建议?
我正在寻找一个Scheme或LISP版本,可以用来恢复一些丢失的Lisp开发技能。某些Web功能会很好,但不是必需的。
我研究了Plt和MIT方案,虽然两者看起来都不错,但Plt似乎功能更丰富。我也看过Lisp的实现,但是所有这些看起来都很昂贵。
我赞成免费/廉价的实现,因为这确实很可能只是偶尔的业余编程。您有什么建议?
Answers:
我做了很多实验。
Clozure Common Lisp(néeOpen MCL)是迄今为止最快的。比我的Intel Mac Mini的下一个竞争对手快25-30%。
MIT计划在Mac上可以很好地工作。我想我最终会自己编译它,但是该站点上有二进制文件。PLT Scheme也很好,并且可以更好地集成到Mac世界中。(PLT Scheme现在被称为Racket,但是在更改之后我还没有尝试过。)
loop
宏。
我是Clojure,SBCL和Clozure CL的忠实拥护者。它们都是很棒的,但是如果您只想刷新一下Lisping排骨,它们也会显得过分杀伤力。他们都需要大量的信息搜寻,邮件列表搜索,软件包安装,irc潜伏等等。
Scheme博士可以安装并运行。四年半前,我使用Scheme博士完成了SICP的前三章。没有比定义一个计划评估者更深刻的了。一旦掌握了一切,您将对工业力量的弟兄有更多的耐心。
对于Scheme,DrRacket非常棒(包含在Racket中)。
对于Common Lisp,Ready Lisp很棒。开箱即可使用带有SBCL,Aquamacs和Slime的单个dmg。
从网站:
Ready Lisp是将几种流行的Common Lisp软件包(尤其是Mac OS X)结合在一起的,包括:Aquamacs,SBCL和SLIME。下载后,您将拥有一个应用程序捆绑包,您可以双击该捆绑包-并在完全配置的Common Lisp REPL中找到自己。
对于希望以最小的麻烦尝试一下Common Lisp的美丽的OS X用户来说,它是理想的选择。教师也可以使用它为Mac学生提供免费,完整的Common Lisp环境,以带回家。要求
Ready Lisp的当前版本是20090127,并且需要Mac OS X 10.5(Leopard)。
它包括以下组件软件版本:
Aquamacs 1.6 SBCL 1.0.24 SLIME 2009-01-23 CL-FAD 0.6.2 CL-PPCRE 2.0.1 LOCAL-TIME 0.9.3 SERIES 2.2.10 CL HyperSpec 7.0 paredit.el 20 redshank.el 1 cldoc.el 1.16
我自己没有使用过,但是Steel Bank Common Lisp在reddit上获得了一些好评。它是开源的且免费的,因此价格适合一些业余编程。
过去,我在Macbook Pro上运行过GNU Common Lisp。
我确实向新手推荐Racket,因为它为Scheme初学者(或者恰好是正在使用Scheme的编程初学者,或者更好地通过HtDP工作的初学者)提供了最好的IDE之一。
对于对小型Scheme系统更感兴趣以便自己修改或阅读其源代码的人来说,Larceny Scheme也很受关注,这主要是因为其JIT编译器Twobit本身完全在Scheme中实现。
更新:此外,Chez Scheme最近已开源:
https://github.com/cisco/ChezScheme
(它可能不像Larceny那样“小”,但是它具有非常激进的优化编译器。)
您可能想查看Lisp用户协会或Common Lisp Wiki上的内容,以了解其中的内容。我使用Steel Bank Common Lisp和Emacs进行了设置,但到目前为止并没有做任何事情。
我最近一直在问自己同样的问题。在OS X上使用DrScheme之后,这将是我在任何平台上进行Scheme分发的首选。很好的IDE,调试功能和良好的库/框架集(包括一个很好的GUI工具包,“即使在Mac上也可以使用... ;-))
但是,我现在正在为Common Lisp寻找类似的舒适环境。归结为CCL(OpenMCL)与SBCL。SBCL似乎是最受欢迎的选择,但我读到OS X上不支持线程。(这真的是一个问题吗?)。另一方面,Clozure CL拥有对本机线程,obcj-bridge等的良好支持。
我发现CCL有点奇怪,但我会坚持一会儿-看起来仍然是集成的逻辑选择。
我使用Emacs 23(使用--with-ns从源代码构建)和Slime作为环境,这对我来说效果很好。:-)