【发布时间】:2011-08-10 10:47:00
【问题描述】:
我已经阅读了很多关于 Arc 的内容,它似乎提供了一些好东西。由于 Arc 是一个 lisp 而 Clojure 是一个 Lisp 我想知道 Arc 是否可以在 Clojure 之上实现?
【问题讨论】:
我已经阅读了很多关于 Arc 的内容,它似乎提供了一些好东西。由于 Arc 是一个 lisp 而 Clojure 是一个 Lisp 我想知道 Arc 是否可以在 Clojure 之上实现?
【问题讨论】:
我可以立即看到的最重要的问题; Arc 有真正的尾调用优化,而 clojure 没有,因为 JVM 限制。 AFAIK,这意味着您至少必须放弃将 Arc 函数作为 JVM 方法直接调用的能力,而且您不能将 Arc 函数直接映射到 Clojure 函数,这可能意味着您会损失一些性能。
可能意味着您将无法使用普通的 clojure 轻松创建 Arc 的编译/高效版本。另一方面,如果您知道自己在做什么,那么“玩具”解释器应该不会太难。
【讨论】:
在 Clojure 中实现 Arc 编译器听起来很有趣,尽管由于上面讨论的 TCO 问题,将其编译为 JVM 字节码可能有点困难。仅仅因为它是用 Clojure 编写的,并不意味着它需要针对 JVM。
另一方面,Arc 解释器将是非常合理的。
【讨论】: