有成千上万的 LISP 和 Scheme 实现可用,我很难找到合适的用于 Windows 开发的实现。我在学校学习了这些语言,发现它们非常优雅,但是,除了在学术环境中之外,我似乎无法找到适合开发代码的实现。
什么是具有以下要求的 Scheme 或 LISP 实现?
编译为本机代码,而不是编译为 C。
支持多处理器上的多线程(即多个线程可以同时运行)。
生成 64 位代码。
无需 Cygwin 即可在 Windows 中使用。
Corman Lisp可能很有趣,但不支持 64 位代码 (AFAIK)。
Clozure CL刚刚移植到 Windows 上,所以它可能还不是很成熟,还缺少一些东西。
LispWorks和Allegro CL很棒,尽管它们不支持多个并发 Lisp 线程。目前 LispWorks 6 正在开发中,它将支持多个并发的 Lisp 线程。但请注意,例如 LispWorks 当前可以在任何时候运行单个 Lisp 线程,但可以运行多个外部线程。
Dan Weinreb对 Common Lisp 实现进行了调查。
大型商业 Common Lisp 实现应该满足您的所有标准:
一个相当完整、可用且免费的 Scheme 实现是Racket(以前称为 PLT Scheme)。
免费的Clozure CL也可能满足您的需求。
我非常喜欢 Clozure。MIT Scheme 将在 Windows 下运行,对于初学者来说它是一个不错的选择,因为它将与 The Book 最匹配。
Clozure CL 正在将其 1.3 版本移植到 32 位和 64 位窗口上。
当我键入此内容时,该 1.3 版本位于 RC1。
提供的示例通过 FFI 使用本机 Win32 API 调用来显示传统的 Win32 窗口,并带有消息循环等。
Hunchentoot 网络服务器适用于当前版本。
它支持 Unicode,因此与“W”Win32 API 的接口应该很简单。
它编译为本机代码,支持本机线程并且不需要 cygwin。
似乎缺少 ECL。这是一个非常好的 CL 实现,可以在 Windows、Linux 和 Mac 上运行,支持所有平台上的本地线程并允许创建二进制文件。
这是如何在 Windows XP 上使用 Emacs 和 Slime 安装 Lisp 的精彩描述:
http://www.pchristensen.com/blog/articles/installing-sbcl-emacs-and-slime-on-windows-xp/