我希望掌握函数式编程的概念。
我多年来一直使用Javascript在web应用程序中编写客户端脚本,除了使用原型之外,它还包括简单的DOM操作、输入验证等。
最近,我有often read说Javascript是支持函数式编程的语言之一。
以我对Javascript的熟悉和经验,我更喜欢用它来学习函数式编程。我希望我能够更专注于主要的函数概念,而不会被一种全新的语法所困扰或分心。
因此,总而言之,Javascript是学习函数式编程概念的好选择吗?Javascript中的哪些功能是相关的/支持函数式编程?
发布于 2008-09-28 02:49:44
虽然javascript在某种程度上支持FP,但它并不直接鼓励它。这就是为什么像Oliver Steele's Functional这样的项目存在,以填补空白。所以我不推荐用它来学习FP。相反,请查看F#。
发布于 2008-09-28 03:05:06
我想说的是,尽管您可以通过JavaScript快速掌握一些函数式编程概念,但像使用函数式编程语言一样一致地使用JavaScript并不是一种常见的做法。至少不是很常见。大多数人不会发布关于如何使用JavaScript进行函数式编程的教程-- marxidad指出的那个例子实际上是一个相当不错的例子,但你不会发现很多这样的例子。功能方面通常并不明显,就像人们在JavaScript中使用闭包时一样,但没有意识到他们正在这样做。
将两个函数作为参数传递给第三个函数,然后让返回值成为与前两个函数相关的执行,这种想法是一种高级技术,几乎只出现在像jQuery这样的成熟库的核心中。自执行匿名函数等已经取得了进展,但仍然没有得到一致的使用。大多数教程通常关注JavaScript的面向对象功能,比如如何创建属性和方法、作用域、访问控制以及如何使用构造函数的prototype属性。老实说,如果函数式编程是你想要的,那么我会选择一种严格以这种能力著称的语言。
发布于 2008-09-29 19:31:44
我不记得是谁说的了,但是javascript被称为“Algol语法的方案”。所以对于学习Scheme/Lisp来说,Javascript是一个不错的开始。注意,像Lisp这样的函数式语言与Haskell这样的纯函数式语言有很大的不同。
除了“一流函数”(意思是函数是值,可以赋值给变量)之外,词法作用域也是函数式语言的固有部分。
前面已经提到过Higher Order Javascript和The Little Javascripter。它们都是优秀的文本。此外,Higher Order Programming in Javascript可能是一个更容易的开始。
https://stackoverflow.com/questions/145053
复制相似问题