JavaScript中的函数编程

时间:2013-08-10 17:16:35

标签: javascript functional-programming

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

虽然我喜欢使用JavaScript来学习易学语言,但我觉得很难学习。我正在阅读Eloquent JavaScript中的函数式编程(第6章)。问题的关键在于函数式编程是一种通过使用函数来封装丑陋的小细节(如for循环)来使程序更加清晰和明确的方法,我明白了。让我疯狂的是试图遵循在函数中具有函数的代码,该函数返回一个函数,该函数将函数值作为参数,等等......我的头只是在一段时间后旋转而我没有看到它使得我的生活更轻松,虽然最终的程序确实看起来更好..这只是你习惯使用的东西吗?或者我做错了什么。

2 个答案:

答案 0 :(得分:3)

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

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

祝你好运!

答案 1 :(得分:0)

我喜欢在我的普通语言首先之外进行函数式编程。我没有在Javascript中开始这样做,但是首先学习了一些Scheme,OCaml和f#。我发现将这些原则简化为Javascript更容易。

Javascript作为一种功能语言很棒(在我看来)。例如,一个Javascript构造函数是一个monad(这里的精彩视频:http://www.youtube.com/watch?v=b0EF0VTs9Dc)。

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

坚持下去!