functional programming的好处

2015-08-12  本文已影响0人  tigerhy1

1. referential transparency: 相同参数,每次调用,返回的结果都是一样的。

2. lack-of-side-effects:无side effects,也就是不会改变“外面的世界”(通常是改变全局变量,或者output io)

为什么这两个特性这么好呢?因为把每个function都独立起来了。(从代码级别的隔离,卧槽)。

面向对象中的class提供的一个主要功能就是屏蔽内部的数据,而函数编程这方面更好。

面向对象编程,产生的一个问题是,会把一些函数和class绑定起来,减少了可重复利用性。

而函数编程,则把数据结构和函数解耦。

a) decoupling functions and data and 

b) programming to a small set of abstractions, you end up with more reusable, composable code.

还有一点还是没想清楚:函数编程,多线程是怎么搞的,imutable data structure是怎么帮助多线程编程的。

上一篇 下一篇

猜你喜欢

热点阅读