帮我选择合适的Scheme实现

时间:2011-08-23 21:25:56

标签: scheme

考虑到分散在整个互联网上的关于这个主题的系统过时的内容,这似乎真的太多了。

我根本无法找到可用的Scheme实现的无噪声和最新列表(there除外,但我已经享受了一个丰富的功能总结表)所以我问社区而不是尝试几十种我还没有掌握的语言实现。帮助我享受这种神奇的语言。

要求:

  • 免费(如发言)
  • 轻量级:没有超出标准的不必要的库,必须快速编译。任何比Guile轻的东西都可以轻量化。
  • R6RS(请不要使用巨魔,我正在学习语言,觉得有必要坚持标准化)
  • 没有.NET,没有JVM
  • 至少应该在Linux上工作
  • 至少应该在x86上工作
  • Easy FFI
  • 快速实施的奖励点(太糟糕了,Bigloo不支持R6RS)。

我目前正在使用Ypsilon,我发现它很棒,但自2008年以来一直没有维护.Guile可以成为一个很好的竞争对手,但它看起来相当沉重(使用Ypsilon可以轻松实现FFI)。

我可能会遗漏一些高质量的实现,所以请随时分享您的经验。

更新感谢您的回答,我会选择Larceny,因为它提供了我正在寻找的所有内容。祝大家快乐诡计多端!

4 个答案:

答案 0 :(得分:8)

您可能需要查看Racket。它的文档和IDE非常好,它是JIT编译的,它支持各种语言,包括R 6 RS。你不确定球拍完成的唯一要求就是轻量级 - 这是一个关于它是否适用的透视问题。

如果您不关心Racket提供的大量功能,Larceny也可能需要考虑。它由Will Clinger撰写,他亲自参与了R 6 RS过程。 Larceny是R 6 RS最完整的实现之一。 Petite Larceny可能很难编译,但这可能并不重要,具体取决于您所针对的平台。

最后,有Chez Scheme。我没有经验;尽管如此,它仍然是一个高效且受到良好支持的计划。无论如何,请注意,据我所知,如果您想访问FFI,则需要商业许可证。

编辑:添加了Larceny和Chez Scheme。

答案 1 :(得分:5)

虽然它可能无法满足您的所有要求,但我在chicken享受了很多乐趣,它拥有一个充满活力的社区和许多实用应用程序库。

答案 2 :(得分:3)

Racket(以前的PLT Scheme)是最好的实现之一,是积极维护的,并且包括R 6 RS支持。

答案 3 :(得分:1)

Chez Schemeopen sourced,因此现在可以满足您对“免费”(如语音)软件的要求。它也是一个非常强大的实现和编译器,具有强大的遗产。它还完全符合R6RS,作者Kent Dybvig是该标准的指导委员会之一。

我建议在Emacs中使用Geiser使用它的REPL。