Programming languages 被FP迷住了,但仍然认为是必要的,我认为功能如何?

Programming languages 被FP迷住了,但仍然认为是必要的,我认为功能如何?,programming-languages,functional-programming,imperative-programming,Programming Languages,Functional Programming,Imperative Programming,像大多数ppl一样,我从一开始就做了很多命令式代码,现在仍然做很多,主要是Java、Ruby和Javascript 我从来都不是OO的忠实粉丝,要么因为我从来没有正确地理解它,要么因为我不认为OO 我第一次通过javascript看到FP,传递函数、闭包等。从那时起我就爱上了FP 最近,我对Clojure产生了兴趣,可能是Scala,有朝一日甚至可能去Haskell。我喜欢我在功能性方法中看到的东西,但我如何看待功能性?在过去的3-4年里,我一直在做命令式的事情,我的大脑在处理问题时倾向于思考命

像大多数ppl一样,我从一开始就做了很多命令式代码,现在仍然做很多,主要是Java、Ruby和Javascript

我从来都不是OO的忠实粉丝,要么因为我从来没有正确地理解它,要么因为我不认为OO

我第一次通过javascript看到FP,传递函数、闭包等。从那时起我就爱上了FP

最近,我对Clojure产生了兴趣,可能是Scala,有朝一日甚至可能去Haskell。我喜欢我在功能性方法中看到的东西,但我如何看待功能性?在过去的3-4年里,我一直在做命令式的事情,我的大脑在处理问题时倾向于思考命令式


我怎样才能忘记我需要的命令式风格?从功能上考虑

不。不要忘记命令式风格,因为你仍然需要它。即使是许多做得很好的FP库,在封面下看起来也有些必要。最好考虑将FP添加到工具和技术列表中,而不是使用一种或另一种技术进行全金属化

现在,关于如何学习FP风格?玩具项目-或实用项目,你写自己的使用。或者见鬼去吧,再给自己写一篇博客——不过要有点曲折!如上所述,关键是实践。执行此操作时,请避免共享状态。力求纯净,也就是说,尽可能多地避免副作用。如果语言支持闭包、模式匹配和lambda函数,请使用闭包、模式匹配。从函数是程序中的一流数据类型的角度考虑——将它们作为输入并作为输出返回。这个列表还在继续,但是如果你在观察的话,你会看到同样的概念反复出现

如果您觉得在这方面需要轻轻推动,请使用鼓励FP风格的工具语言,如F或Scala

如果你觉得你需要更多的爱的帮助,那就去找哈斯克尔:


否则,请使用您选择的工具,并记住上述FP概念。如果你决定走这条路,有一本很好的书叫做《使用F和C来说明在主要是FP语言F和主要是OO语言C中应用的技术》。

不。不要忘记命令式风格,因为你仍然需要它。即使是许多做得很好的FP库,在封面下看起来也有些必要。最好考虑将FP添加到工具和技术列表中,而不是使用一种或另一种技术进行全金属化

现在,关于如何学习FP风格?玩具项目-或实用项目,你写自己的使用。或者见鬼去吧,再给自己写一篇博客——不过要有点曲折!如上所述,关键是实践。执行此操作时,请避免共享状态。力求纯净,也就是说,尽可能多地避免副作用。如果语言支持闭包、模式匹配和lambda函数,请使用闭包、模式匹配。从函数是程序中的一流数据类型的角度考虑——将它们作为输入并作为输出返回。这个列表还在继续,但是如果你在观察的话,你会看到同样的概念反复出现

如果您觉得在这方面需要轻轻推动,请使用鼓励FP风格的工具语言,如F或Scala

如果你觉得你需要更多的爱的帮助,那就去找哈斯克尔:


否则,请使用您选择的工具,并记住上述FP概念。如果你决定走这条路,有一本相当不错的书,叫做《用F和C来说明在以FP为主的语言F和以OO为主的语言C中应用的技术》。

请看Haskell。因为它是纯粹的,你被迫去思考功能。在F或Scala中,您仍然可以编写非常命令式的代码。我强烈推荐格雷厄姆·哈顿关于哈斯凯尔的书。

选择哈斯凯尔。因为它是纯粹的,你被迫去思考功能。在F或Scala中,您仍然可以编写非常命令式的代码。我强烈推荐格雷厄姆·哈顿关于哈斯克尔的书。

正如朱丽叶所说,练习。但不要忘记命令,你需要它。。。要么是因为你会发现FP也不是完美的,要么至少是为了避免在争论FP是百万次优等品时完全让自己难堪;正如朱丽叶所说,练习。但不要忘记命令,你需要它。。。要么是因为你会发现FP也不是完美的,要么至少是为了避免在争论FP是百万次优等品时完全让自己难堪;