将JavaScript转换为Clojure

10

我知道ClojureScript可以将Clojure代码编译为JavaScript,但是是否可以反过来,将一些JavaScript代码子集翻译回Clojure?


怀疑这个,甚至找不到一个将JavaScript编译成LISP的编译器,尽管你总可以自己写一个。 - Raynos
在http://marijnhaverbeke.nl/parse-js/上有一个用Common Lisp编写的JavaScript解析器。 - Terje Norderhaug
是的,这是可能的,但值得付出这样的努力吗? - Hamza Yerlikaya
5个回答

5
是的,虽然这样做没有太多意义。
Clojure -> JavaScript是有道理的,因为:
  • JavaScript是一种广泛应用于Web应用程序的唯一合适的目标语言
  • 它允许有效地使用Google Closure编译器进行整个程序的优化
  • Clojure是一个很好的“源”语言,因为它具有宏功能和对定义表达性DSL的良好支持
作为目标语言,Clojure会是一个奇怪的选择 - 如果您想在JVM平台上运行,直接针对Java字节码会更自然。
JavaScript也会是将源语言编译成Clojure的奇怪选择 - 如果您想要Clojure代码,为什么不直接编写Clojure呢?特别是,使用(可能的子集)JavaScript将无法轻松访问使Clojure真正引人注目的所有功能(惰性函数式编程,并发支持,宏元编程,持久数据结构等)。

4
是的,这绝对是可行的一个非常实用的想法。您可以使用Rhino JavaScript编译器将JavaScript转换为Java类,然后可以设置一些东西来从Clojure调用Java类。您无法获得源代码,但可以在Clojure代码中利用库。

4

我刚好发现了一个JavaScript到Common Lisp的转换器,叫做CL-JavaScript


2

是的,将JavaScript翻译成Clojure是可行的。与Lisp家族中的其他方言一样,Clojure非常适合构建用于其他语言的解析器和编译器。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接