Windows Scheme/Lisp 实现

18
在众多的LISP和Scheme实现中,我很难找到适用于Windows开发的合适实现。尽管我在学校里学过这些语言并发现它们非常优雅,但我似乎无法找到一个适合在非学术环境下编写代码的实现。
以下是具有以下要求的Scheme或LISP实现:
1. 编译成本地代码,而不是编译成C。 2. 支持多处理器的多线程(即多个线程可以同时运行)。 3. 生成64位代码。 4. 在Windows中可使用,无需Cygwin。

2
顺便提一下,LISP现在被称为Lisp,它实际上是一个语言家族,包括Scheme、Common Lisp、Emacs Lisp、Clojure、Logo、AutoLisp等。 - Rainer Joswig
6个回答

12

Corman Lisp 可能会很有意思,但似乎不支持64位代码。

Clozure CL 正在移植到Windows,所以可能还不太成熟,而且还缺少一些东西。

LispWorksAllegro CL 非常好,但它们不支持多个并发的Lisp线程。目前,LispWorks 6正在开发中,将支持多个并发的Lisp线程。需要注意的是,例如LispWorks当前只能同时运行一个Lisp线程,但可以运行多个外部线程。

Dan Weinreb有一个Common Lisp实现的调查


5
大型商业Common Lisp实现应该符合您的所有标准:LispWorksAllegro CL
一个相当完整、可用且免费的Scheme实现是Racket(以前称为PLT Scheme)。
免费的Clozure CL也可能适合您的需求。

5

我非常喜欢Clozure。MIT Scheme可以在Windows下运行,对于初学者来说是一个不错的选择,因为它最符合这本书(指SICP)。


1
这是什么书? - MadPhysicist
这正是我想的!我正在阅读它。你能推荐一些与Emacs和Windows兼容良好的Scheme实现吗? - MadPhysicist
我有点跟不上最新的情况,因为我一直在使用Common Lisp或Clojure进行编程,但MIT-Scheme是可用的 https://www.gnu.org/software/mit-scheme/,而SLIME则被广泛认为是Lisp的优秀工具。https://www.emacswiki.org/emacs/SlimeMode - Charlie Martin
我明白了。是的,我自己一直在使用Slime和Common Lisp,但想尝试一下纯净的函数式Lisp,可以这么说。 - MadPhysicist
我身边半英里范围内没有Windows机器,所以很难尝试。MIT Scheme for Mac似乎坚持使用基于X的EMACS克隆版。 - Charlie Martin
你如何在Windows上使用Clozure?你是通过源代码进行构建吗? - aks

3
Clozure CL正在为其1.3版本进行32位和64位Windows的移植。
在我打这段话的时候,1.3版本已经发布了RC1。
提供了一个示例,使用本地Win32 API调用通过FFI显示传统的Win32窗口,包括消息循环等。
Hunchentoot Web服务器可在当前版本中运行。
它支持Unicode,因此与“W” Win32 API的接口应该很简单。
它编译为本机代码,支持本机线程,不需要cygwin。

不幸的是,它需要SSE2而没有后备,因此它不能在所有硬件上运行。 - Marko
你如何在Windows上使用Clozure CL?是通过源代码构建还是下载二进制文件? - aks

1

看起来好像缺少了ECL。它是一个非常好的CL实现,可以在Windows、Linux和Mac上工作,在所有平台上支持本地线程,并允许创建二进制文件。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接