32

F# 和 Clojure 之间最显着的区别是什么?

哪些构造具有 Clojure 没有的 F#,反之亦然?

F# 有宏吗?

4

7 回答 7

60

大多数差异将源于 F# 源自ML而 clojure 源自lisp的事实。

所以 F# 有更多的 ML/OCaml/Haskell 感觉,重点是:

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

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

  • s-表达式
  • 关闭

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

于 2009-05-27T11:24:38.813 回答
11

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

于 2009-06-03T12:00:38.550 回答
6

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

但是请注意,单声道支持 F#。

至于宏,我认为你不走运

于 2009-05-27T11:12:34.970 回答
6

看起来在 CLR 上运行 Clojure 需要付出一些努力。看起来很有前途。

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

于 2009-12-22T18:02:07.410 回答
3

它们都是功能优先的编程语言,但它们的类型系统非常不同。F# 是一种强类型语言,而 Clojure 是一种动态类型语言,所以

  1. Boumbles 对 What is the Difference between Strong vs. Static Typing AND Weak vs. Dynamic Typing的回答;
  2. haylem 对动态与静态类型语言研究的回答;或者
  3. Joey Adams 的问题原型设计哪个更好:静态类型语言还是动态类型语言?

可能有助于回答“F# 和 Clojure 之间最显着的区别是什么?”。但是请注意,“静态类型”和“动态类型”之间的争论是一场长期存在的争论,因此可能看起来很宗教。

于 2014-05-01T16:12:40.183 回答
2

如果你想要宏,你可以将它与BooNemerle一起使用。

于 2009-05-27T20:09:00.160 回答
2

F# 真正对应于 JVM 上的 Scala。在 .NET 平台上最接近 Clojure 的是 IronScheme。

于 2009-05-27T18:58:55.433 回答