Aar*_*hen 0 javascript haskell functional-programming
我是一名具有非常强大的oop背景的开发人员.最近我想学习javascript因为我认为这是未来.但我发现自己很难理解javascript中概念的函数式编程部分.我四处搜索,在函数式编程世界中我得到了很多"Haskell"语言.很多人都说如果你想学习FP,你应该学习haskell.
如果有人可以提供一些意见或某人可以分享一些经验,我们将非常感激.
我认为你的问题没有二元答案.老实说,你不必学习Haskell来理解函数式编程.但是在我看来,学习Haskell会让你更好地理解函数式编程.
您可以使用JavaScript学习函数式编程,但JavaScript不是纯粹的功能并允许您编写容易命令式代码的事实,不会强迫您以功能方式编写困难的算法.所以每当你以一种功能性的方式写东西时都会遇到困难,你可能会放弃并改用你的旧习惯.
我还要补充一点,JavaScript隐藏了一些功能编程,并不自然地提供诸如map,reduce,composition,filter和currification等功能特性之类的功能.顺便说一下,你应该看看Underscore,这是一个JavaScript库,它带来了很多功能,比如map.您可能也对CoffeeScript感兴趣,这是一种"编译成JavaScript的小语言".这种语言基本上是具有更好语法的JavaScript,它带来了JavaScript的功能方面.即使您不想使用它,只需查看概述部分并了解CoffeeScript如何转换为JavaScript将使您了解更好的JavaScript.
如果你有时间学习Haskell,并强迫你用它编写非平凡的算法,那么你将对函数式编程有一个非常好的理解.Haskell是纯粹的,所以没有别的选择迫使你以功能的方式表达你的算法.此外,您将学习Functor,Monad,Curryfication,Pattern Matching等概念,您将无法通过功能性方式使用JavaScript来学习.有人会争辩说,你不需要知道这些概念是一个优秀的JavaScript程序员,但如果你了解它们,你会看到一种新方式的编程,它可能会改变你用任何语言编程的方式.
总而言之,我会说学习Haskell,不是要成为一名优秀的JavaScript程序员所必须做的事情,但它会帮助你更"开放"并拥有更好的编程文化.学习Haskell要求投入很多,并且会花费你很多时间,但它也很有趣.如果您想学习它,我建议您阅读" 了解大好的Haskell "一书!.