Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure在其他平台上的实现?_Clojure - Fatal编程技术网

Clojure在其他平台上的实现?

Clojure在其他平台上的实现?,clojure,Clojure,是否有为其他虚拟机(如.Net、Python、Ruby、Lua)构建Clojure的任何实现,或者它与Java和JVM的关系是否过于紧密?为其他平台构建Clojure有意义吗?至少有一个Rich Hickey自己的项目 该项目是Clojure在公共语言运行库(CLR)上的本机实现, 微软.Net框架的执行引擎 ClojureCr是用C#(以及Clojure本身)编程的,并利用了微软的 动态语言运行时(DLR) 据我所知,Clojure目前有三种实现: ClojureCr,用于CLI的Cloju

是否有为其他虚拟机(如.Net、Python、Ruby、Lua)构建Clojure的任何实现,或者它与Java和JVM的关系是否过于紧密?为其他平台构建Clojure有意义吗?

至少有一个Rich Hickey自己的项目

该项目是Clojure在公共语言运行库(CLR)上的本机实现, 微软.Net框架的执行引擎

ClojureCr是用C#(以及Clojure本身)编程的,并利用了微软的 动态语言运行时(DLR)


据我所知,Clojure目前有三种实现:

  • ClojureCr,用于CLI的Clojure实现
  • ClojureScript,用于ECMAScript和
  • Java平台的Clojure实现,也叫Clojure
事实上,Rich Hickey特别选择了Clojure这个名字,因为它既包含字母CLR,也包含字母J


我听过关于Objective-C/Cocoa运行时、LLVM和Rubinius VM实现的传言,但我不知道它们是否真的存在。

我不确定Python和Ruby端口是否有意义,它们是具有多个虚拟机/实现的语言。如果您想在Clojure和Python或Ruby之间实现本机互操作,您可以使用Jython或JRuby并留在JVM上。

“或者它与Java和JVM的联系太紧密了? " or is it too closely tied to Java and the JVM? Does it make sense to build a Clojure for other platforms?" 为其他平台构建Clojure有意义吗?” Clojure的设计理念之一是拥抱主机平台。JVM上的Clojure支持JVM,并提供对类、数字等的直接访问。互操作是双向的,不需要胶水

ClojureScript以完全相同的方式包含JavaScript(ECMAScript),允许直接访问对象、数字等。对于.NET目标也是如此

制作在多个平台上运行完全相同源代码的“跨平台”语言很有诱惑力,但并不总是成功的。到目前为止,Clojure已经避免了这种诱惑,并努力保持与主人的亲密关系