目前,我正在学习Haskell,其语言(F#或Haskell)做你喜欢的编程的通用应用程序?

你认为的更强的语言?

有帮助吗?

解决方案

我会去Haskell。 HackageDB 是一系列专门针对该语言编写的库。在F#的情况下,你必须使用大多数没有用函数式语言编写的库,因此它们不会像使用那样“优雅”。但是,当然这在很大程度上取决于你想要做多少功能编程以及你想要用它的项目的约束。即使是“通用目的”也不意味着它应该在所有情况下使用;)

其他提示

我更喜欢Haskell.

乔恩*哈罗普的要求,Haskell有贫穷的工具,引起我想到一个点,由于我相当不同意这一点。我认为,这里的问题是部分之一的发展的风格。让我们比较一些工具相关的特点的F#和GHC:

  1. F#具有广泛的视觉工具和全康具有无。对我来说,缺乏些工具是无关紧要的:我的工作与六个Unix command line,并重定建立的系统。缺乏支持我的风格的发展中F#将会非常想我的。另一方面,如果你喜欢工作在一些工作室类型的环境中,你会有相反的意见。

  2. F#和/或.净我的理解具有非常良好的调试器。GHC仅具有有限的调试器运行中的解释程序。我不用一个调试器在年(这是由于使用的试验驱动的发展)和工作时主要与纯粹的功能,如在Haskell,一个调试器,更不必要的。所以对我来说,缺乏这种工具是相当无关紧要的。

  3. 库。这主要取决于库什么你需要的,不是吗?很好那些没有帮助如果你需要的是不存在的,且具有很多不良的设计图书馆可能不是这样的帮助。Haskell一定具有较少的图书馆。网络,但它也有一个合理的选择,和质量的API设计在他们中许多人是非常非常高。

我不知道什么F#'s接口进入地代码图书馆是一样,但GHC是为这个伟大的,由于美妙的FFI。我写了一个窗DDE服务器完全在哈斯克尔(是的—不是一条线的C,甚至没有处理回调Windows C库),它采取了很少的时间和相当简单的比做同样的事情在C或C++。如果你需要的机代码的接口,Haskell肯定是更好的选择。

将"不可预测性的"存储器的使用和性能是一个很好的点。Haskell在我看来,实际上合理的可预测如果你知道你在做什么,但你不会知道你在做什么当你开始,你会有很多要学习。F#是更类似于其他。净的语言。

总体而言,这个问题可能涉及更多的平台比语言:本之间的巨大差异的"Unix世界"的全康产生机代码和"Windowsy世界"的F#上运行。净是不是一个语言问题。

我会说F#,因为你可以访问整个.Net框架。但是,这更像是一个图书馆事物。

这取决于你想做什么:

Haskell是两者中更纯粹的功能语言。

F#更像是一种混合语言,而不是纯粹的功能,但有一组很棒的基类库,你可以用它们在Windows或Mono上轻松地做现代事物。

我认为Jon Harrop出于某种原因对Haskell严重打击。事实上,它并没有在学术界之外使用,因此它被广泛用于投资银行业务,远远超过F#和OCaml,并且有充分的理由。如果你想要一个工作函数式编程,那么学习Haskell,因为为Haskell程序员宣传的帖子远远多于F#或OCaml。我确信F#会受到欢迎,因为它背后有微软,而且从零开始,但目前Haskell有明显的领先优势。

大概2到3年前,OCaml在实用的功能语言领域处于领先地位,但从那以后,Haskell已经用更多的库,更多功能,更好的性能和更广泛的商业用途取代了它。

你可能会发现这篇博文由Neil Mitchell提供信息:

F#来自Haskell的观点

评论也很有启发性。

我会说这取决于你学习它的原因。如果你是为了体验纯粹的函数式语言,那就去Haskell吧。但是如果你肯定会使用这种语言,那么F#可能是更好的选择。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top