什么是函数式编程
把复杂的函数功能,拆分成一个一个的纯函数,再组合这些函数,去实现这个功能。
函数式编程的核心概念
-
数据不可变: 要求你所有的数据都是不可变的,这意味着如果你想修改一个对象,那你应该创建一个新的对象用来修改,而不是修改已有的对象。
-
无状态 主要是强调对于一个函数,不管你何时运行,它都应该像第一次运行一样,给定相同的输入,给出相同的输出,完全不依赖外部状态的变化。
纯函数
-
无副作用 不修改全局变量,不修改入参。
-
不依赖外部状态(无状态) 函数的的运行结果不依赖全局变量,this 指针,IO 操作等。