F#和Clojure之间存在显着差异

nik*_*lai 28 f# functional-programming clojure

F#和Clojure之间最重要的区别是什么?

哪个构造有F#哪个Clojure没有,反之亦然?

F#有宏吗?

Aar*_*paa 58

大多数差异将源于这样一个事实,即F#是来自ML,而clojure是来自lisp的.

所以F#有更多的ML/OCaml/Haskell感觉,强调:

  • 静态打字
  • 类型推断
  • 模式匹配

虽然clojure有更多的Lisp感觉,但强调:

  • s表达式
  • 关闭

同样正如Brian所说,F#是一种.Net语言,而clojure是一种JVM语言,因此每个人都可以访问大量但不同的库.

  • 在Clojure/contrib中有ClojureCLR,但它现在是alpha版本. (11认同)

Mar*_*rko 9

Clojure是一种lisp,实际上是lisp-1家族语言.F#实际上是OCaml采用的.net平台.


Bri*_*new 6

一个关键的区别是F#是一种.NET语言,而Clojure是在JVM上运行的.因此,部署和支持的平台将是不同的.

请注意,单声道支持F#.

至于宏,我觉得你运气不好.

  • 并且AFAIK没有可以运行.NET但不会运行JVM的平台.反过来说,有很多情况.因此,Clojure更通用,而F#或多或少是微软特有的. (4认同)
  • @ mad-j好吧.Mono为.NET提供了大量的多平台空间.而且,例如,vanilla JVM不能在android上运行.那么Java或多或少是Sun特有的? (4认同)
  • 几乎不.例如,在Windows/Linux/Mac上很常见. (3认同)

Ale*_*son 6

看起来在CLR上运行Clojure需要付出一些努力.看起来很有希望.

http://github.com/richhickey/clojure-clr