函数式编程的思想

函数式编程的思想

 

      什么是函数式编程?在数学领域,函数是一种关系,这种关系使一个集合里的每一个元素对应到另一个集合里的唯一元素。函数是将唯一的输出值赋予每一输入的“法则”。这一“法则”可以用函数表达式、数学关系,或者一个将输入值与输出值对应列出的简单表格来表示。函数最重要的性质是其决定性,即同一输入总是对应同一输出(注意,反之未必成立)。从这种视角,可以将函数看做“机器”或者“黑盒”,它将有效的输入值变换为唯一的输出值。通常将输入值称做函数的参数,将输出值称做函数的值。
《Why Functional Programming Matters》的作者John Hughes 说明了模块化是成功编程的关键,而函数编程可以极大地改进模块化。在函数编程中,编程人员有一个天然框架用来开发更精练的、更小的、更简单的和更一般化的模块,然后将它们组合在一起。函数式编程的基本特点是:
    丰富的数据类型;
    函数是运算元;
    在函数内保存数据;
    函数内的运算对函数外无副作用。
       函数式编程只描述在程序输入上执行的操作,不必使用临时变量保存中间结果。重点是捕捉“是什么以及为什么”,而不是“如何做”。与将重点放在执行连续命令上的过程性编程相比,函数式编程的重点是函数的定义而不是状态机(State Machine)的实现。是一种强调表达式的计算而非命令的执行的一种编程风格。表达式是用函数结合基本值构成的,它类似于用参数调用函数(函数式的优美的说明可见《Functional Programming For The Rest of Us》)。
JavaScript为什么要使用函数式编程的方式呢?其实无论是面向对象还是面向过程,我们都需要简单、高效,同时又维护性强、可复用的实现。而JavaScript某些特征恰好迎合了这一需求。

posted @ 2009-03-11 08:17  我的javaIT  阅读(181)  评论(0编辑  收藏  举报