我应该学习F#或函数式编程语言吗?

时间:2008-12-22 11:08:25

标签: .net f#

我应该花时间学习微软的新F#语言吗? 我主要是一名C#.NET开发人员,我想知道学习F#对于开发当今典型的应用程序是否有任何帮助。

6 个答案:

答案 0 :(得分:15)

F#是开始学习函数式语言的绝佳场所。如果您担心F#知识不适用于其他功能语言,则不应该。 F#是ML系列语言的成员。微软只是稍微调整了一下,以便它能与.NET一起运行。

Luca Bolognese在PDC 2008上给了amazing presentation F#。我强烈建议你观看它并自己决定F#是否值得学习。

答案 1 :(得分:13)

值得一看的是让您以不同的方式思考的编程语言,如果您是C#开发人员,F#可能是您最容易访问的函数式编程语言。

即使您决定不想在F#中开发应用程序,使用F#的体验也可能改变您编写C#的方式。

答案 2 :(得分:3)

你说,“我应该学习一般的函数式编程语言吗?”

如果你想更深层次地理解编程,我说你应该这样做。学习LISP对我来说是一次令人大开眼界的冒险。起初这很难。然后有一天,仿佛通过魔法对我来说很自然。这对于你以不同方式看待问题的能力来说只会更好。

答案 3 :(得分:3)

我很久以前就学过Prolog,在许多方面它仍然是我最喜欢的语言。现在Prolog不仅仅是一种功能语言,而是一种AI语言,不过前段时间我学习的是基于Prolog的Erlang。我建议你学习这两种语言,因为你学到了很多东西,这有利于你的日常开发 - 例如 - C#。

如果我今天要学习一种新的功能语言,很可能是F#,因为它将成为.Net平台的一等公民。我认为F#是功能性(多范式)语言,你最有可能提高效率。

答案 4 :(得分:2)

查看What would be a good second lanuguage to learn for a C# programmer.中的回复。底线是:函数式语言提供了一个全新的范例,对您有价值,因为它可以提高您的编程技能。

答案 5 :(得分:1)

它是否有助于开发'通用'应用程序?不是特别的,无论如何不得多于或少于c或c#。它不是RAD,因此F#中没有可用的快捷方式,可以比任何其他非RAD语言更快地发布“常用”应用程序。

另一方面,对于计算量大于表示的程序,F#可能比另一种语言更接近应用程序域。功能语言使得处理某些问题域变得更加直观。

我个人认为值得学习,不是因为它会解决你所有的问题,而是因为每个值得翻转的程序员都应该知道至少一种功能语言。当函数式编程概念浮现在脑海中时,许多看似巴洛克式的程序设计概念变得更加透明。

我个人的另一个偏好;我喜欢使用可靠,多样的系统编程语言。我不喜欢将鞋子结构变成与它们没有很强概念匹配的类型。在我看来,ML类型系统允许您构建比更主流类型系统更精细的类型。因此,我觉得我可以用更自然的方式编写与这些结构交互的代码,使用ML样式语言,如F#。

虽然这对于常见概念没有太大帮助,但是它们具有在更主流的语言中支持它们的功能集,对于任何甚至是非常罕见的事情,我更喜欢F#和大多数其他语言。