0

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

虽然我有群体 JavaScript 是一种容易学习的语言,但我发现它很难学习。我正在阅读Eloquent JavaScript中的函数式编程(第 6 章) 。整个要点似乎是,函数式编程是一种通过使用函数来封装丑陋的小细节(如 for 循环)使您的程序更加清晰和意图的方法,我明白了。让我发疯的是试图遵循在函数中具有函数的代码,该函数返回一个将函数值作为参数的函数,等等......等等......我的头在一段时间后只是旋转,我没有看到它使尽管最终的程序看起来更好,但我的生活更轻松了。这只是你习惯的东西吗?还是我做错了什么。

4

2 回答 2

3

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

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

祝你好运!

于 2013-08-10T18:14:44.310 回答
0

我首先将自己浸入到我的普通语言之外的函数式编程中。我不是开始用 Javascript 做的,而是先学习了一些 Scheme、OCaml 和 f#。我发现以这种方式更容易将这些原则带回 Javascript。

Javascript 作为一种函数式语言非常棒(在我看来)。例如,Javascript 构造函数是一个 monad(关于此的精彩视频:http ://www.youtube.com/watch?v=b0EF0VTs9Dc )。

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

坚持下去!

于 2013-08-10T17:21:59.137 回答