F#可以教我很好的函数式编程实践吗?

exp*_*rer 8 .net f# functional-programming c#-to-f#

我打算让自己沉浸在函数式编程范式中,让思维过程成为我的第二天性..Net/Mono是我熟悉的唯一框架/对象模型,我不想学习任何其他类型的系统.这使得F#显而易见,因为学习新型系统的负担不会是一个令人分心的因素.

但我关心的是语言本身.在将FP钻入我的头骨时,它是否会像任何其他经典函数编程语言(例如Haskell)一样好?

jas*_*son 10

是的,它可以.这里特别有用和密切关注的是真实世界的功能编程,它来自C#,特别是F#视角的FP.你会爱上它的.


Tom*_*cek 9

我认为使用F#学习函数式编程的好处(特别是如果你已经有过C#和.NET的经验)是你会发现创建一些有趣的项目要容易得多.

  • 一个原因是你已经熟悉.NET库(易于从F#访问)
  • 第二个原因是F#不是纯粹的,所以你可以开始编写有效的代码,然后对其进行改进以使其更具功能性.

F#支持多种范例,但它主要是一种函数式语言(与支持多种范式的Python或C#相比,但不是主要的功能).这样可以更轻松地强制自己使用功能样式.避免命令式模式更容易,因为它们更难以用F#编写(并且代码看起来更糟).

我认为一旦你"掌握"基础函数编程,如果你仍然感兴趣的话,学习其他函数式语言会更容易.对Haskell或Scheme有一点了解是非常好的,因为它们更激进(在某些方面).

如果你擅长在没有在一些真实项目中实际使用它们的情况下擅长概念,那么从一些经典语言开始使用一些经典书籍也可能是一个不错的选择(例如Haskell School of ExpressionStructure and Interpretation of Computer Programs).我并不是说任何消极的意义 - 我个人非常喜欢阅读技术书籍而不尝试例子,因为我仍然可以从阅读中获取有趣的概念(对于实践,总有谷歌).当然,您可以在Haskell或Scheme中编写一些代码,但作为.NET程序员,您可能会发现编写F#代码更有趣......