宗旨:通过消灭可变状态的不确定因素,不对外暴露有可能出错的特性,那么就不容易犯错
函数:将A类型内的所有值a都关于到B类型的值b,A与B存在一个映射,即b=f(a),映射可以是将整形转换为字符串,对数值进行运行等,对于任一个a值,都有一个确切的b值与之对应,外界无需关心其内部映射的实现
副作用:指除了根据输入参数得出运算结果外,还存在其它的影响,如不该在函数内发生的操作也发生了,一些不关心的行为也发生了
纯函数:指那些没有副作用的函数,通过对引用透明的表达式进行等量替换后,得到一样的结果的函数
引用透明(referential transparency):可以使用其结果来替代自身的表达式,称之为引用透明,对于一个程序P,其包含一个函数f(x),f(x)返回y,即P(f(x)) == P(y) 应该成立,其过程是等价的,即不包含任何的副作用。