函数式编程
1.1 什么是函数式编程?为何它重要
数学中函数的特点:
- 函数必须总是接受一个参数
- 函数必须总是返回一个值
- 函数应该依据接收到的参数而不是外部运行环境
- 对于一个给定的X,只会输出唯一的一个Y
不依赖外部变量,把所需要的变量作为参数传入函数。
函数式编程:
函数式编程是一种范式,我们能够以此创建仅依赖输入就可以完成自身逻辑的函数。这保证了当函数被多次调用时仍然返回相同的结果。函数不会改变任何外部环境的变量,这将产生可缓存的、可测试的代码库。
1.2 引用透明性
所有函数对于相同的输入都将返回相同的值。
所以用函数的返回值作为函数的替代不会影响上下文。
1.3 命令式、声明式与抽象
命令式是我们精确告诉程序每一步都做什么,“如何做”。
声明式则是告诉程序“做什么”,至于如何做的部分,则被放置在底层的函数中。
函数式编程主张以抽象的方式创建函数,这些函数能够在代码的其他部分被重用。
1.4 函数式编程的好处
纯函数:
相同输入返回相同的值
- 便于测试
- 因为不依赖任何外部变量,所以不用担心测试的时候外部变量被其他代码改变
- 而且也不会改变外部变量,如果外部变量被改变就可能影响到其他使用该变量的代码。
- 便于阅读
- 并发执行时不用担心同步问题
- 可缓存。可以把函数不同参数的计算结果存起来,下次相同的输入就可以直接查
- 一次只做一件事,然后通过管道和组合做更复杂的事
网友评论