JavaScript中的函数式编程

JavaScript中的函数式编程,javascript,functional-programming,Javascript,Functional Programming,我不确定这里是否允许这样做,如果不允许,请告诉我在哪里可以问这个问题 虽然我知道JavaScript是一种容易学的语言,但我发现它很难学。我正在读关于函数式编程(第6章)的书。整个要点似乎是,函数式编程是一种通过使用函数封装难看的小细节(如for循环)使程序更加清晰和有目的的方法,我明白了。让我发疯的是,试图遵循一个代码,该代码在一个函数中包含一个函数,该函数返回一个以函数值为参数的函数,等等。。。发射型计算机断层扫描仪。。。。过了一会儿,我的头就开始转动,我看不出这会让我的生活变得更轻松,尽管

我不确定这里是否允许这样做,如果不允许,请告诉我在哪里可以问这个问题


虽然我知道JavaScript是一种容易学的语言,但我发现它很难学。我正在读关于函数式编程(第6章)的书。整个要点似乎是,函数式编程是一种通过使用函数封装难看的小细节(如for循环)使程序更加清晰和有目的的方法,我明白了。让我发疯的是,试图遵循一个代码,该代码在一个函数中包含一个函数,该函数返回一个以函数值为参数的函数,等等。。。发射型计算机断层扫描仪。。。。过了一会儿,我的头就开始转动,我看不出这会让我的生活变得更轻松,尽管最后的节目看起来确实更好。。这只是你习惯的东西吗?还是我做错了什么事。

我首先接触了普通语言以外的函数式编程。我并没有开始用Javascript做这件事,但首先学会了一些Scheme、OCaml和f#。我发现通过这种方式将原则带回Javascript更容易

在我看来,Javascript作为一种功能性语言非常棒。例如,Javascript构造函数是一个monad(这里有一个很棒的视频:)

我会说,是的,你必须习惯它——但最简单的方法是在JS之外。递归(例如)是一个真正的头部烘焙,当你习惯于循环。(提示:首先确定您的退出条件!)


坚持下去

我首先学习了普通语言以外的函数式编程。我并没有开始用Javascript做这件事,但首先学会了一些Scheme、OCaml和f#。我发现通过这种方式将原则带回Javascript更容易

在我看来,Javascript作为一种功能性语言非常棒。例如,Javascript构造函数是一个monad(这里有一个很棒的视频:)

我会说,是的,你必须习惯它——但最简单的方法是在JS之外。递归(例如)是一个真正的头部烘焙,当你习惯于循环。(提示:首先确定您的退出条件!)


坚持下去

我认为使用javascript学习函数式编程的主要问题是javascript没有强制执行函数式风格。虽然可以用javascript编写纯函数,但很容易不编写。此外,尽管javascript易于学习,但它是一种有很多怪癖的语言;要完全理解这种语言的机制是相当困难的。另一个问题是Javascript没有提供使函数式编程如此有趣的大部分功能:lambda表达式、模式匹配等没有内置到语言中

如果你的目标是学习函数式编程,我建议你使用纯函数式语言,比如Haskell。但是,如果您想专门学习Javascript,请确保深入理解原型链、类型强制、自动分号插入、范围界定等概念。以下是一些有用的资源:

  • 我个人很喜欢David Herman的“高效JavaScript:68种利用JavaScript力量的具体方法”。好书
  • 铬控制台!把你读的东西都试一下
  • Esprima在线解析器()。了解如何解析一段代码非常有用
  • 最终,道格拉斯·克罗克福德(Douglas Crockford)的《好的部分》(The Good Parts)只是为了简单的介绍。我不认为这本书是“美丽代码”的参考书。为此,请阅读大卫·赫尔曼的书
  • 加里·伯恩哈特(Gary Bernhardt)的史诗《沃特》
  • Mozilla的文档()
  • ECMA规范(有节制)()

祝你好运

我认为使用javascript学习函数式编程的主要问题是javascript没有强制执行函数式风格。虽然可以用javascript编写纯函数,但很容易不编写。此外,尽管javascript易于学习,但它是一种有很多怪癖的语言;要完全理解这种语言的机制是相当困难的。另一个问题是Javascript没有提供使函数式编程如此有趣的大部分功能:lambda表达式、模式匹配等没有内置到语言中

如果你的目标是学习函数式编程,我建议你使用纯函数式语言,比如Haskell。但是,如果您想专门学习Javascript,请确保深入理解原型链、类型强制、自动分号插入、范围界定等概念。以下是一些有用的资源:

  • 我个人很喜欢David Herman的“高效JavaScript:68种利用JavaScript力量的具体方法”。好书
  • 铬控制台!把你读的东西都试一下
  • Esprima在线解析器()。了解如何解析一段代码非常有用
  • 最终,道格拉斯·克罗克福德(Douglas Crockford)的《好的部分》(The Good Parts)只是为了简单的介绍。我不认为这本书是“美丽代码”的参考书。为此,请阅读大卫·赫尔曼的书
  • 加里·伯恩哈特(Gary Bernhardt)的史诗《沃特》
  • Mozilla的文档()
  • ECMA规范(有节制)()

祝你好运

“整个要点似乎是,函数式编程是一种通过使用函数封装难看的小细节(如for循环)来使程序更清晰、更有目的性的方法。”在过程式编程中也可以这样做。函数式编程远不止这些。就像生活中的每一件事一样,通过实践,它变得更容易。坚持下去。:-)顺便说一句,编程中几乎每一种“方法”都是关于抽象/封装的,所以当你学习其他语言时,你现在学到的课程会有回报;让它们更清晰只是一个方便的副作用。这是一种非常不同的思维方式,需要时间来理解。然而,一旦你学会了,你就会