函数式编程之副作用

函数式编程是一个古老而又深邃的概念。今天翻了翻Trevor Burnham所著的《CoffeeScript Accelerated JavaScript Development》,偶然看到副作用一说。去网上找了找,在阮一峰的博客上是这么说的:

所谓“副作用”(side effect),指的是函数内部与外部互动(最典型的情况,就是修改全局变量的值),产生运算以外的其他结果。
函数式编程强调没有"副作用",意味着函数要保持独立,所有功能就是返回一个新的值,没有其他行为,尤其是不得修改外部变量的值。

这么一说,我就觉得JavaScript不是纯粹的函数式语言的,它的确只算是非函数语言里的函数式语言。因为它的函数有副作用,可以更改外部变量,调用外部函数。当然它的函数式特性更为迷人,比如高阶函数。

参考:阮一峰-函数式编程初探

作者: YanWen

Web 开发者

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s