为什么函数式编程重要?

作者:刘专,日期:2018 年 02 月 16 日

约翰·休斯教授曾写过一篇论文,专门论述函数式编程的重要性。在其中,休斯指出:

函数式语言的两个特性:高阶函数和懒求值,能有效提升模块化。 ~ 约翰·休斯(John Hughes)

John Hughes 约翰·休斯是谁?

John Hughes 肖像,来自 http://www.cse.chalmers.se/~rjmh/

约翰·休斯(生于 1958 年 7 月 15 日)是一名瑞典计算机科学家,也是查尔姆斯理工大学(Chalmers University of Technology)计算机学院的教授。他是查尔姆斯函数式语言组的成员,主要工作与 Haskell 编程语言有关。在该领域发表了很多有影响力的论文,其中包括 “Why Functional Programming Matters“(后文简称 whyfp)。

whyfp 是休斯教授 1984 发表的论文,主要解释函数式编程的重要性,其中关键在于模块化。

为了展示高阶函数和懒求值的应用,论文包含以下几部分

处理数组和树

使用高阶函数和递归模式,可轻松重复使用模块,以便实现更复杂的功能。

数值算法

基于懒求值,通过模块化实现了牛顿-拉弗森(Newton-Raphson)平方根算法。

另外,还使用懒求值实现了数值微积分。

Alpha-beta 启发法,一种 AI 算法

通过结合使用高阶函数和懒求值这两个粘合剂,可以实现人工智能复杂的算法。

论文地址可参见这里

REF