F#和Clojure之间的显著差异
F#和Clojure之间最显著的区别是什么 哪些结构有F#哪些Clojure没有,反之亦然F#和Clojure之间的显著差异,clojure,f#,functional-programming,Clojure,F#,Functional Programming,F#和Clojure之间最显著的区别是什么 哪些结构有F#哪些Clojure没有,反之亦然 F#有宏吗?一个关键区别是F#是一种.NET语言,而Clojure在JVM上运行。因此,部署和支持的平台将有所不同 但是请注意,F#由mono支持 至于宏,我想 大多数差异将源于这样一个事实,即F#是clojure的后裔,而F#是clojure的后裔 因此,F#更具ML/OCaml/Haskell风格,强调: 静态类型 类型推断 模式匹配 而clojure则更具口齿不清的感觉,强调: s-表达式 宏
F#有宏吗?一个关键区别是F#是一种.NET语言,而Clojure在JVM上运行。因此,部署和支持的平台将有所不同 但是请注意,F#由mono支持
至于宏,我想 大多数差异将源于这样一个事实,即F#是clojure的后裔,而F#是clojure的后裔 因此,F#更具ML/OCaml/Haskell风格,强调:
- 静态类型
- 类型推断
- 模式匹配
- s-表达式
- 宏
- 闭包
正如Brian所指出的,F#是一种.Net语言,而clojure是一种JVM语言,因此每个人都可以访问大量但不同的库。F#实际上对应于JVM上的Scala。与.NET平台上的Clojure最接近的是IronScheme。如果需要宏,可以将其与或一起使用。Clojure是一种lisp,实际上是lisp-1族语言。F#是.net平台实际采用的OCaml。看起来在CLR上运行Clojure需要付出一些努力。看起来很有希望 它们都是编程语言,但它们的类型系统非常不同。F#是一种强类型语言,Clojure是一种动态类型语言,等等
可能有助于回答“F#和Clojure之间最显著的区别是什么?”。然而,请注意,“静态类型”和“动态类型”之间的争论是一个长期存在的争论,因此可能看起来很宗教化。而且,恐怕没有一个平台会运行.NET,但不会运行JVM。反过来说,有很多情况。所以,Clojure更通用,而F#或多或少是微软特有的。@mad-j是的。Mono占据了.NET的大部分多平台空间。例如,香草JVM不在android上运行。所以Java或多或少是特定于Sun的?很难。例如,在Windows/Linux/Mac上很常见。@Joonas-iPhone和iPad通过MonoTouch运行.NET,但不支持Java。这是一个相当大的漏洞。@Justin:似乎有人在黑客攻击Java支持iThings,而不管苹果的政治决定:Clojure/contrib中有ClojureCLR,但目前它是alpha。Clojure支持一些懒惰的东西,F#是一种严格的语言。此外,Clojure有一个很棒的STM实现。F#的计算表达式(用于一元语法)和引号与宏有点重叠。F#的惰性序列或多或少类似于Clojure。我要区分的是Clojure内置的持久数据结构&强调STM。它们都有与对象类型交互的复杂机制。它们可以分别是库或C#,Java代码。“F#实际上对应于Scala”。从技术上讲,但不是政治上。Scala是一种学术语言,而F#和Clojure是工业语言。@Jon-不确定将Scala描述为一种学术语言是否公平。它有很多“实用”的特性,有很好的Java平台互操作性,我看到它在大企业(如银行)中的使用比F#或Clojure都要多。@mikera:嗯,在我写这篇评论的第二年Martin Odersky创建TypeSafe时,Scala变得更像一种工业语言。自那时以来,Scala在英国就业市场的份额增加了10倍。