是否有可能通过SBCL(或其他快速Lisp)实现Clojure(或Clojure语法)?

时间:2013-08-13 23:36:35

标签: clojure lisp sbcl

我已经尝试了SBCL和Clojure,发现我喜欢Clojure的语法,但与SBCL相比,它对我来说非常慢。是否可以通过SBCL实现Clojure,还是可以实现?


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

3 个答案:

答案 0 :(得分:8)

Clojure旨在针对几个后端。这是一个副作用Clojure是一种托管语言,使用包含主机 philosophy设计。例如,在JVM上为Clojure编写的相同代码在未经修改的情况下运行,例如CLR也永远不会成为目标。大量的代码在Clojure for JVM和ClojureScript之间很常见,这是一个很好的奖励。

目前稳定在:

  • JVM
  • 的JavaScript / ECMAScript的

通常稳定:

  • CLR / .NET

我知道实验版本:

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

随着兴趣和时间相交,出现了更多目标。如果您想为自己喜欢的Lisp提供实现,欢迎使用补丁!建议将实现基于ClojureScript编译器,因为它最好地例证了编译器的预期开发方法。

答案 1 :(得分:2)

虽然之前的答案说明了在不同语言上托管Clojure的困难,但我认为有一种编程语言很有意思:Shen。它使用最小的45 primitive instructions,设计,因此可以轻松移植到不同的语言。它目前在CLisp,SBCL,Clojure,Scheme,Ruby,Python,Java和Javascript下运行。它似乎是ML和Lisp的混合,虽然我没有用它编程。

答案 2 :(得分:1)

有可能但是它很不可取,你会得到更快,然后它就在JVM上。

如果你想加快它的速度,可以考虑使用更高速的librar构建clojure,比如使用低级JVM表示的clojure数据和类似的东西,或编写更快的自己的库。

在JVM上快速制作clojure是棘手的但是可行的,可以探测到比SBCL的端口好得多。