Functional programming 如何开始函数式编程?

Functional programming 如何开始函数式编程?,functional-programming,Functional Programming,关于函数式编程的炒作,对于C#程序员来说,哪种是开始函数式编程的最佳资源?我不是在寻找C#3.0语言的改进。我在大学里学习函数式编程,使用语言 在它的主页上,你很可能会找到你需要开始的东西:) 顺便说一句,这需要大量的实践才能看到解决方案;算法本身并不是每个人都习惯用面向对象、逻辑或过程语言编写的。我认为对于一个有.NET背景的C#开发人员来说,进入函数式编程的最佳方式是学习F#。花些时间研究Lisp或Scheme,因为它们是函数式编程的父母。这是一个很好的游戏环境。为自己准备一份,因为这是一个

关于函数式编程的炒作,对于C#程序员来说,哪种是开始函数式编程的最佳资源?我不是在寻找C#3.0语言的改进。

我在大学里学习函数式编程,使用语言

在它的主页上,你很可能会找到你需要开始的东西:)


顺便说一句,这需要大量的实践才能看到解决方案;算法本身并不是每个人都习惯用面向对象、逻辑或过程语言编写的。

我认为对于一个有.NET背景的C#开发人员来说,进入函数式编程的最佳方式是学习F#。花些时间研究Lisp或Scheme,因为它们是函数式编程的父母。这是一个很好的游戏环境。为自己准备一份,因为这是一个很好的方案介绍,将帮助您相当快地跟上进度


一旦你了解了函数式,试着用函数式的方式解决一些问题。

选择一种函数式语言。具有许多功能特性。完全是功能性的

解决一些问题

如果你看看Euler项目,Python和Haskell的排名都非常高


编辑

Python中的函数式编程:


    • 我同意Mehrdad Afshari的观点。如果您熟悉C语言,请使用F语言开始函数式编程。语法类似于C#中的lambda表达式。

      无耻的插件:我是的合著者(实际上是一个光荣的编辑:)。它直接针对像你这样的人。它主要通过F#教授函数式编程的原理,还展示了如何在C#中的许多情况下应用相同的原理

      它假定您已经知道C,但从头开始引入F。它为你提供了足够的F#知识,让你开始实验,但目的是教授一种实用的思维方式,而不是深入F#作为一种语言的每一个角落。(换句话说,如果你想开始使用F#作为一种生产语言,我也会再买一本书。)


      它还没有发布,但你可以通过MEAP计划提前访问。已经有好几章可供阅读,不久将有更多章节可供阅读。

      的免费在线版是一种很好的、廉价的入门方式

      一旦你完成了几章,你就可以决定FP是否适合你,你是想继续使用Haskell还是继续使用其他语言。你甚至可以继续购买枯树版(就像我一样)


      您从本书中学习到的范例,特别是开头几章,同样适用于其他函数式语言。(我喜欢认为我的Javascript和Groovy得益于我对Haskell的学习)。

      到目前为止,我一直喜欢它,它对初学者来说非常好

      在那本书的枯木版发行之前,你对其他资源有什么建议吗?如果你喜欢枯木而不是电子书,这里有两本热门的F#书:F#的基础(罗伯特·皮克林)和专家F#(唐·赛姆斯)我只是在曼宁网站上读这本书的免费部分——非常有趣,而且写得很好。一件小事:第16页有“代码首先创建一个临时列表来存储所有死亡的字符。”-可以用编辑Jon@史蒂夫:网上的东西是在我开始研究之前:)下层选民/攻击性选民:愿意给出理由吗?这并不是说我把这本书插入了一个无关的问题,至少我是诚实的……无论你是否提供了免责声明,为你自己的产品获得代表似乎都是垃圾。这就是为什么我把你记下来,就像我对别人做的那样(托马斯·汉森)。这里没有个人的怨言或侮辱,只是我的看法。@OJ:添加了一些人的参考资料,他们似乎认为Python确实支持函数式编程。同意,Python不是函数式编程语言,但它确实有函数特性。这是一篇老文章,我很欣赏S.洛特自此写了一本关于这个主题的书。尽管如此,还没有为Python编写实际的第三方函数库,我觉得这有点令人失望。当然,已经有过各种尝试和贡献,但没有什么能像EcmaScript的JS库等那样占据上风。最后,我有足够的动机尝试F#而不是Haskell。谢谢