七周七编程模型-第三章-函数式编程

141 阅读1分钟
函数式编程特别适合与并发编程,因为它没有副作用。对于使用命令式编程的程序员来说,这很难理解。在线程和锁的模型中为什么要使用到锁呢?主要目的是为了共享可变状态,但如果没有可变状态,那么自然就不存在线程安全的问题了。

和线程与锁的模型比较有如下优点:

1.不存在竞态条件,程序运行的顺序不影响最终结果

函数式编程没有副作用,不会对世界有影响,自然可以不在意它的执行顺序。

2.引用透明性

因为没有副作用,所以只有函数的返回值是重要的。那么可以直接使用函数的返回值来替换函数的调用。

优点

比起等价的命令式程序,函数式编程会更简单,更容易推理,也更便于测试。 同时因为函数式程序的引用透明性,我们可以轻松得将程序并行化。

缺点

性能会较低。原因,为了保证没有副作用,所有的值都必须是不可变的。