1

我一直在阅读很多关于 Arc 的内容,它似乎提供了一些好东西。由于 Arc 是一个 lisp 而 Clojure 是一个 Lisp 我想知道 Arc 是否可以在 Clojure 之上实现?

4

2 回答 2

1

我可以立即看到的最重要的问题;Arc 有真正的尾调用优化,而 clojure 没有,因为 JVM 限制。AFAIK,这意味着您至少必须放弃将 Arc 函数作为 JVM 方法直接调用的能力,而且您不能将 Arc 函数直接映射到 Clojure 函数,这可能意味着您会损失一些性能。

可能意味着您将无法使用普通的 clojure 轻松创建 Arc 的编译/高效版本。另一方面,如果您知道自己在做什么,那么“玩具”解释器应该不会太难。

于 2011-04-21T16:47:54.907 回答
1

在 Clojure 中实现 Arc 编译器听起来很有趣,尽管由于上面讨论的 TCO 问题,将其编译为 JVM 字节码可能有点困难。仅仅因为它是用 Clojure 编写的,并不意味着它需要针对 JVM。

另一方面,Arc 解释器将是非常合理的。

于 2011-04-21T19:46:01.583 回答