OS X的最佳Scheme或LISP实现是什么?


85

我正在寻找一个Scheme或LISP版本,可以用来恢复一些丢失的Lisp开发技能。某些Web功能会很好,但不是必需的。

我研究了Plt和MIT方案,虽然两者看起来都不错,但Plt似乎功能更丰富。我也看过Lisp的实现,但是所有这些看起来都很昂贵。

我赞成免费/廉价的实现,因为这确实很可能只是偶尔的业余编程。您有什么建议?


6
请注意,PLT Scheme将名称更改为Racket。
soegaard


2
为什么这个问题还没有解决,而几乎所有其他类似的问题呢?
埃里克·卡普伦

Answers:


71

我会和球拍一起去。它的速度可能不如SBCL快,但它确实具有出色的库和文档,以及旨在让您立即开发和运行Scheme程序的集成环境。我真正喜欢Racket的IDE,DrRacket,是您不需要做的事情-您不必学习Emacs,您不必学习SLIME,您不必担心会被淘汰,派对库,因为实际上所有用于Racket的库都可以在package中找到。总而言之,它确实减少了学习曲线,使您可以专注于手头的实际任务:编写出色的代码。

另外,如果您要制作由Racket驱动的网站(我目前正在研究),则它附带了Web服务器


1
几周前,我或多或少地选择了PLT,到目前为止,我对自己的选择感到非常满意。如您所说,许多库和文档以及一些有用的工具。
Slartibartfast

谢谢,嗯,没人。我更关注工具和文档,而不是速度,所以我将使用PLT。
Mark Brittingham,2009年

1
当然可以 创建DrScheme的初衷是教育,它有一些优点(易于使用和记录),但也有缺点。除非您要通过HtDP(htdp.org),否则最好忽略教学语言,并使用Module进行所有操作。
凯尔·克罗宁

除了现在被命名为Racket之外,现在还有一个新的软件包系统软件包目录,在大多数情况下,它们现在比Planet更受青睐。
2015年

22

我做了很多实验。

Clozure Common LispnéeOpen MCL)是迄今为止最快的。比我的Intel Mac Mini的下一个竞争对手快25-30%。

MIT计划在Mac上可以很好地工作。我想我最终会自己编译它,但是该站点上有二进制文件。PLT Scheme也很好,并且可以更好地集成到Mac世界中。(PLT Scheme现在被称为Racket,但是在更改之后我还没有尝试过。)


2
我尝试过的几乎所有东西;通常,这些操作是繁重的列表操作和大量使用的loop宏。
查理·马丁

1
可能要注意,CCL似乎不能在32位Intel上运行,因此Mac Mini有点老了。
David Thornley,2009年

16

我是Clojure,SBCL和Clozure CL的忠实拥护者。它们都是很棒的,但是如果您只想刷新一下Lisping排骨,它们也会显得过分杀伤力。他们都需要大量的信息搜寻,邮件列表搜索,软件包安装,irc潜伏等等。

Scheme博士可以安装并运行。四年半前,我使用Scheme博士完成了SICP的前三章。没有比定义一个计划评估者更深刻的了。一旦掌握了一切,您将对工业力量的弟兄有更多的耐心。


3
实际上,我的Ubuntu-SBCL-SLIME-stumpwm安装程序不需要任何其他功能。对于初学者来说,您只需要实用的Lisp和CLHS,就可以带给您长远的发展。
Svante

15

对于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


5

根据您定义“ Lisp”的方式,Clojure可能适合您的要求。它可以在OS X上正常运行(可以在JVM运行的任何地方运行)。它具有网络功能,并且是免费的。

它还具有新颖,新鲜和易于使用的优点。可能是爱好编程的理想选择。编写Web应用程序或GUI应用程序很容易(使用Java的Swing甚至Qt)。



4

如果您正在寻找Scheme,可以看看刚刚发布的JazzScheme


4

我确实向新手推荐Racket,因为它为Scheme初学者(或者恰好是正在使用Scheme的编程初学者,或者更好地通过HtDP工作的初学者)提供了最好的IDE之一。

http://racket-lang.org/

对于对小型Scheme系统更感兴趣以便自己修改或阅读其源代码的人来说,Larceny Scheme也很受关注,这主要是因为其JIT编译器Twobit本身完全在Scheme中实现。

http://www.larcenists.org/


更新:此外,Chez Scheme最近已开源:

https://github.com/cisco/ChezScheme

(它可能不像Larceny那样“小”,但是它具有非常激进的优化编译器。)


在网站上,他们似乎只提到本机编译器,to-C编译器和CLR实现-JIT在哪里?
埃里克·卡普伦

本机编译器JIT。
pnkfelix 2014年

(也就是说,它会将您通过'load'或REPL馈送给它的每个Scheme表达式动态编译为x86机器代码。此处的JIT是“及时”;与Java和JVM无关,如果您使用的是这种情况)以为我指的是JIT)
pnkfelix 2014年

我认为Java与它无关。只是主页上说“直接编译为本机代码”,而这并不是通常描述JIT编译VM /解释器的方式。
埃里克·卡普伦

1
要回答您的问题,您现在无法从Larceny那里获得一个独立的二进制文件。您可以加载Scheme源,然后将其堆(使用编译后的代码)序列化为堆映像,但是即使如此,您仍然必须将堆文件和运行时二进制文件重新分发为单独的文件。我曾考虑过尝试使其更容易地将两者合并为一个二进制映像,但从未尝试过。
pnkfelix 2014年


2

如果您只是爱好编程,LispWorks提供了一个免费的个人版本,该版本功能强大且功能完善。最大的问题是运行时间限制为几个小时。因此,您不会在其中编写任何长时间运行的服务器,但这并不意味着它不是有用的工具。

CLISP可以在几乎所有程序上运行,并且实际上非常好,它只是不执行线程。(如果要编写实际的服务器,则很重要,但是正如PHP和Perl向我们展示的那样,Apache + [插入语言]是一个非常可行的平台。)



1

我最近一直在问自己同样的问题。在OS X上使用DrScheme之后,这将是我在任何平台上进行Scheme分发的首选。很好的IDE,调试功能和良好的库/框架集(包括一个很好的GUI工具包,“即使在Mac上也可以使用... ;-))

但是,我现在正在为Common Lisp寻找类似的舒适环境。归结为CCL(Op​​enMCL)与SBCL。SBCL似乎是最受欢迎的选择,但我读到OS X上不支持线程。(这真的是一个问题吗?)。另一方面,Clozure CL拥有对本机线程,obcj-bridge等的良好支持。

我发现CCL有点奇怪,但我会坚持一会儿-看起来仍然是集成的逻辑选择。

我使用Emacs 23(使用--with-ns从源代码构建)和Slime作为环境,这对我来说效果很好。:-)



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.