6

我已经尝试过 SBCL 和 Clojure,发现我喜欢 Clojure 的语法,但与 SBCL 相比它对我来说非常慢。Clojure 在 SBCL 上是否有任何实现,或者有可能吗?


我发现https://github.com/ayrnieu/disclojure可以启发我。:-)

4

3 回答 3

8

Clojure 旨在针对多个后端。这是一个副作用 Clojure 是一种以拥抱宿主的理念设计的宿主语言。例如,让在 JVM 上为 Clojure 编写的相同代码无需修改即可在 CLR 上运行,这永远不会成为目标。大量代码在用于 JVM 的 Clojure 和 ClojureScript 之间是常见的,这是一个很好的奖励。

它目前稳定用于:

  • 虚拟机
  • JavaScript/ECMAScript

一般稳定用于:

  • CLR/.net

我知道以下实验版本:

  • Python
  • C
  • 方案
  • IOS(通过方案)

随着兴趣和时间的交叉,越来越多的目标出现了。如果你想为你最喜欢的 Lisp 提供一个实现,欢迎使用补丁!建议将您的实现基于 ClojureScript 编译器,因为它最能体现编译器的预期开发方法。

于 2013-08-14T00:24:47.487 回答
2

虽然之前的答案说明了在不同语言上托管 Clojure 的困难,但我认为有一种编程语言很有趣:Shen。它的设计包含最少的45 条原始指令,因此很容易移植到不同的语言。它目前在 CLisp、SBCL、Clojure、Scheme、Ruby、Python、Java 和 Javascript 下运行。看起来它是 ML 和 Lisp 的混合体,虽然我没有用它进行过多编程。

于 2013-08-14T23:45:50.203 回答
1

有可能,但不太可能你会变得更快,然后它在 JVM 上。

如果您想加快速度,可以查看为 clojure 构建的更高速的库,例如使用低级 JVM 表示的 clojure 数据和类似的东西,或者编写自己的更快的库。

在 JVM 上使 clojure 快速运行是棘手但可行的,与移植到 SBCL 相比,这是一个更好的选择。

于 2013-08-14T08:08:13.907 回答