2008-09-28 106 views
59

我在寻找掌握函数式编程概念的方法。Javascript作为功能语言

我用的Javascript长年为在Web应用程序客户端脚本和除使用原型一切都简单DOM操作,输入验证等

末,我有often read JavaScript是一支持函数式编程的语言。

随着我的熟悉和经验的Javascript,我喜欢的就是用它来学习函数式编程。我希望我能够更专注于主要的功能概念,而不会被全新的语法陷入困境或分心。

因此,在总结,JavaScript是一个不错的选择来学习函数式编程的概念? Javascript中的哪些功能是相关/支持函数式编程?

+0

最好的方法是功能齐全。然后你会了解利弊。 – andho 2012-12-28 13:43:24

回答

6

虽然JavaScript的支持FP在一定程度上,它并不直接鼓励它。这就是为什么像Oliver Steele's Functional这样的项目存在,填补空白。所以我不会推荐它学习FP。取而代之的是F#。

+0

感谢您的链接,我有一些阅读要做。 – Ash 2008-09-28 02:56:03

2

JavaScript是一种多范式语言。如果您的目标是学习功能语言概念,请尝试从纯功能语言开始,如OCamlHaskell

+9

“OCaml”中的“O”又是什么意思? – xmjx 2008-09-29 19:36:06

+0

+1。 Objective Caml等等,它不是纯粹的函数,而是多范式,因为它增加了面向对象。 – Dereckson 2013-12-21 22:49:16

6

我要说的是,虽然可以快速掌握使用JavaScript使用JavaScript一些功能的编程概念,始终像一个函数式编程语言不是一种普遍的做法。至少不明显是常见的。大多数人不会发布指明如何使用JavaScript进行函数式编程的教程 - marxidad指出的实际上是一个相当不错的例子,但您不会找到很多。功能方面并不常见,就像人们在JavaScript中使用闭包时一样,但并不知道他们在做这件事。

这样的想法,即将两个函数作为参数传递给第三个函数,然后让返回值成为与前两个函数相关的一些执行,这种高级技术几乎总是只出现在全局函数的核心中,像jQuery这样的库。自我执行匿名功能等已经取得了成功,但仍然没有得到一致的使用。大多数教程常常关注JavaScript的面向对象功能,比如如何创建属性和方法,范围,访问控制以及如何使用构造函数的prototype属性。老实说,如果函数式编程是你想要的,那么我会选择一种严格意义上的这种语言。

9

Higher Order Javascript很好方法来熟悉javascript的功能方面。这也是一个相对较短的阅读情况,如果你想让自己的双脚不会潜入更大的书本中。

6

我不记得是谁说的,但javascript被称为“Scheme with Algol syntax”。所以为了学习Scheme/Lisp,Javascript并不是一个糟糕的开始。请注意,像Lisp这样的函数式语言与纯函数式语言(如Haskell)完全不同。

除了“一流功能”(意思是功能是值,可以赋予变量)之外,词法范围也是构成功能语言的固有部分。

Higher Order JavascriptThe Little Javascripter已被提及。他们都是优秀的文本。另外,Higher Order Programming in Javascript可能是一个更简单的开始。