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/4/fsharp/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
F#和Clojure之间的显著差异_Clojure_F#_Functional Programming - Fatal编程技术网

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#和Clojure之间最显著的区别是什么

哪些结构有F#哪些Clojure没有,反之亦然


F#有宏吗?

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

但是请注意,F#由mono支持


至于宏,我想

大多数差异将源于这样一个事实,即F#是clojure的后裔,而F#是clojure的后裔

因此,F#更具ML/OCaml/Haskell风格,强调:

  • 静态类型
  • 类型推断
  • 模式匹配
而clojure则更具口齿不清的感觉,强调:

  • 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倍。