我正在寻找一个版本的 Scheme 甚至是 LISP,我可以用它来恢复一些丢失的 Lisp 开发技能。一些网络功能会很好,但不是必不可少的。
我看过 Plt 和 MIT 方案,虽然两者看起来都不错,但 Plt 似乎功能更丰富。我还查看了 Lisp 实现,但所有这些似乎都非常昂贵。
我喜欢免费/廉价的实现,因为这很可能只是偶尔的爱好编程。你会有什么建议?
我对此做了很多实验。
Clozure Common Lisp(née Open MCL)是迄今为止最快的;在我的英特尔 Mac Mini 上比下一个竞争对手快 25-30%。
MIT Scheme在 Mac 上运行得非常好。我想我最终自己编译了它,但是那个站点上有二进制文件。PLT Scheme 也不错,并且可能更好地集成到 Mac 世界中。(PLT 方案现在称为Racket,但更改后我没有尝试过它。)
我是 Clojure、SBCL 和 Clozure CL 的忠实粉丝。它们都很棒,但如果你只想刷新你的 Lisping 排骨,它们也太过分了。它们都需要大量的信息搜索、邮件列表搜索、软件包安装、irc 潜伏等。
Dr Scheme 只是安装并运行。四年半前,我使用 Dr Scheme 完成了 SICP 的前 3 章。没有什么比定义 Scheme 评估器本身更深刻的了。一旦你明白这一点,你就会对工业实力的兄弟们有更多的耐心。
对于 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
根据您定义“Lisp”的方式,Clojure可能符合要求。它在 OS X 上运行良好(它在 JVM 运行的任何地方运行)。它具有网络功能并且是免费的。
它还具有新颖、新鲜和有趣的优点。可能是爱好编程的理想选择。编写 Web 应用程序或 GUI 应用程序(使用 Java 的 Swing 甚至 Qt)很容易。
我自己没有使用过,但Steel Bank Common Lisp在 reddit 上获得了一些好评。它是开源和免费的,因此价格适合一些爱好编程。
过去,我在我的 macbook pro 上运行过GNU Common Lisp 。
如果您正在寻找 Scheme,可以查看刚刚发布的JazzScheme。
我确实向新手推荐 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,但到目前为止还没有做任何事情。
如果你只是爱好编程,LispWorks 有一个免费的个人版本,它非常强大和复杂。最大的问题是几个小时的运行时间限制。因此,您不会在其中编写任何长时间运行的服务器,但这并不意味着它不是一个有用的工具。
CLISP 可以在大多数东西上运行,实际上非常好,它只是不做线程。(如果您想编写一个实际的服务器,这很重要,但正如 PHP 和 Perl 向我们展示的那样,Apache + [插入语言] 是一个非常可行的平台。)
我最近一直在问自己同样的问题。在 OS X 上使用 DrScheme 后,它将是我在任何平台上的 Scheme 分发的首选。非常好的 IDE、调试功能和一组好的库/框架(包括一个非常好的 GUI 工具包,“即使在 Mac 上也能正常工作”;-))
然而,我现在正在为 Common Lisp 寻找一个同样舒适的环境。它归结为 CCL (OpenMCL) 与 SBCL。SBCL 似乎是流行的选择,但我在 OS X 上读到不支持线程。(这真的是一个问题吗?)。另一方面,Clozure CL 拥有对原生线程、obj-bridge 等的良好支持……
我发现 CCL 有点奇怪,但我会坚持一段时间 - 它看起来仍然是集成的合乎逻辑的选择。
我使用 Emacs 23(使用 --with-ns 从源代码构建)和 Slime 作为环境,这对我来说效果很好。:-)
与球拍一起去。我很高兴!