【问题标题】:What is the best Scheme or LISP implementation for OS X? [closed]OS X 的最佳方案或 LISP 实现是什么? [关闭]
【发布时间】:2010-10-02 08:09:15
【问题描述】:

我正在寻找一个版本的 Scheme 甚至是 LISP,我可以用它来恢复一些丢失的 Lisp 开发技能。一些网络功能会很好,但不是必不可少的。

我查看了 Plt 和 MIT 方案,虽然两者看起来都不错,但 Plt 似乎功能更丰富。我还查看了 Lisp 实现,但所有实现似乎都非常昂贵。

我喜欢免费/廉价的实现,因为这很可能只是偶尔的爱好编程。你有什么建议?

【问题讨论】:

  • 请注意,PLT Scheme 已将名称更改为 Racket。
  • 为什么这个问题还没有结束,而几乎所有其他类似的问题都结束了?

标签: macos lisp scheme racket


【解决方案1】:

我会选择 Racket。它可能没有 SBCL 快,但它确实具有出色的库和文档,以及旨在让您立即开发和运行 Scheme 程序的集成环境。我真正喜欢 Racket 的 IDE DrRacket 的地方在于,您无需学习 Emacs,您无需学习 SLIME,您不必担心寻找第三者-派对库,因为几乎所有用于 Racket 的库都可以在 packages 中找到。总而言之,它确实缩短了学习曲线,让您可以专注于手头的实际任务:编写出色的代码。

此外,如果您想制作由 Racket 驱动的网站(我目前正在研究),它还附带 web server

【讨论】:

  • 几周前我或多或少地随机选择了 PLT,到目前为止,我对我的选择感到非常满意。正如您所说,大量的库和文档,一些有用的工具。
  • 谢谢,嗯,没人。我更关注工具和文档而不是速度,所以我选择 PLT。
  • 当然可以。 DrScheme 的创建考虑到了教育,它有一些优点(易于使用和记录),但也有一些缺点;除非您正在使用 HtDP (htdp.org),否则最好忽略教学语言并使用 Module 进行所有操作。
  • 除了现在被命名为 Racket 之外,现在还有一个新的 package systempackage catalog 在大多数用例中比 Planet 更受欢迎。
【解决方案2】:

我对此做了很多实验。

Clozure Common Lisp (née Open MCL) 是迄今为止最快的;在我的英特尔 Mac Mini 上比下一个竞争对手快 25-30%。

MIT Scheme 在 Mac 上运行得非常好。我想我最终自己编译了它,但是那个站点上有二进制文件。 PLT Scheme 也不错,并且可能更好地集成到 Mac 世界中。 (PLT Scheme 现在被称为Racket,但是改了之后我没有尝试过。)

【讨论】:

  • 几乎所有我尝试过的东西;通常这些都是大量的列表操作和loop 宏的大量使用。
  • 可能要注意 CCL 似乎无法在 32 位 Intel 上运行,所以我的 Mac Mini 有点老了。
【解决方案3】:

我是 Clojure、SBCL 和 Clozure CL 的忠实粉丝。它们都很棒,但如果你只想刷新你的 Lisping 排骨,它们也太过分了。它们都需要大量的信息搜索、邮件列表搜索、软件包安装、irc 潜伏等。

Dr Scheme 只是安装并运行。四年半前,我使用 Dr Scheme 完成了 SICP 的前 3 章。没有什么比定义 Scheme 评估器本身更深刻的了。一旦你明白这一点,你就会对工业实力的兄弟们有更多的耐心。

【讨论】:

  • 实际上我的 Ubuntu-SBCL-SLIME-stumpwm 设置不需要其他任何东西。对于初学者来说,Practical Common Lisp 和 CLHS 就是你所需要的,这会给你带来很长的路要走。
【解决方案4】:

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

    我刚开始玩Clojure。它显然有一个不错的web framework,并编译为 JVM 字节码。

    我也经常使用DrScheme。这是一个简单而有用的 IDE。

    【讨论】:

      【解决方案6】:

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

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

      【讨论】:

        【解决方案7】:

        我自己没有使用过它,但Steel Bank Common Lisp 在 reddit 上获得了一些好评。它是开源和免费的,因此价格适合一些爱好编程。

        过去,我在我的 macbook pro 上运行过 GNU Common Lisp

        【讨论】:

          【解决方案8】:

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

          【讨论】:

            【解决方案9】:

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

            http://racket-lang.org/

            对于那些对小型 Scheme 系统更感兴趣以便自己修改或阅读其源代码的人来说,另一种选择是 Larceny Scheme,它之所以有趣主要是因为它的 JIT 编译器 Twobit 本身完全在方案。

            http://www.larcenists.org/


            更新:另外,Chez Scheme 最近开源了:

            https://github.com/cisco/ChezScheme

            (它可能不像Larceny那么“小”,但它有一个非常积极的优化编译器。)

            【讨论】:

            • 在网站上,他们似乎只提到了原生编译器、to-C 编译器和 CLR 实现——JIT 哪里来的?
            • 本机编译器 JIT。
            • (也就是说,它会将您通过 'load' 或 REPL 提供给它的每个 Scheme 表达式动态编译成 x86 机器代码。这里的 JIT 用于“及时”;它与 Java 和JVM,以防你以为我所说的 JIT 的意思)
            • 我认为这与 Java 无关;只是主页上写着“直接编译成本机机器码”,而JIT编译的VM/解释器通常不是这样描述的。
            • 要回答您的问题,您目前无法从 Larceny 获得独立的二进制文件。您可以加载您的 Scheme 源代码,然后将其堆(使用已编译的代码)序列化为堆映像,但即便如此,您仍然必须将堆文件和运行时二进制文件作为单独的文件重新分发。我考虑过尝试让两者更容易合并成一个二进制图像,但从未尝试过。
            【解决方案10】:

            您可能想查看the Association of Lisp Usersthe Common Lisp Wiki 上的内容以了解其中的内容。我为自己设置了 Steel Bank Common Lisp 和 Emacs,但到目前为止还没有做任何事情。

            【讨论】:

              【解决方案11】:

              如果你只是爱好编程,LispWorks 有一个免费的个人版本,它非常强大和复杂。最大的问题是几个小时的运行时间限制。因此,您不会在其中编写任何长时间运行的服务器,但这并不意味着它不是一个有用的工具。

              CLISP 可以在大多数东西上运行,实际上非常好,它只是不做线程。 (如果您想编写一个实际的服务器,这很重要,但正如 PHP 和 Perl 向我们展示的那样,Apache + [插入语言] 是一个非常可行的平台。)

              【讨论】:

                【解决方案12】:

                【讨论】:

                  【解决方案13】:

                  我发现Chicken 适用于 Scheme 并且可以通过自制软件获得。

                  brew install chicken
                  

                  大部分来自 SICP 的代码只需稍作修改即可工作。

                  【讨论】:

                    【解决方案14】:

                    我最近一直在问自己同样的问题。在 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 作为环境,这对我来说效果很好。 :-)

                    【讨论】:

                      【解决方案15】:

                      使用Racket。我很满意!

                      【讨论】:

                        猜你喜欢
                        • 2010-09-28
                        • 1970-01-01
                        • 2019-08-28
                        • 1970-01-01
                        • 2023-03-12
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多