知识卡片
函数式编程四大支柱
内容
书中把函数式编程归纳为四点,且指出Swift四点都支持:函数是一等公民,即[[函数类型使函数成为一等公民]](可以作为参数、返回值、存进变量,与其他类型平等);纯函数(相同输入永远得到相同输出,不修改外部状态,如三角函数);不鼓励可变性(可变数据更难推理,对应let优先的默认);强类型(类型系统在编译期而非运行期堵住非法状态)。map(_:)把容器每个元素变换成新值、filter(_:)按条件筛出子集、reduce(_:_:)把容器折叠成单个值,是这四点在标准库层面的具体体现——它们都是高阶函数(接受函数作为参数),把”要做什么变换”和”如何遍历容器”解耦,用声明式表达取代手写循环,让循环体本身不再需要关心索引越界、可变累加变量等易错细节。
参考来源
《Swift编程权威指南》第13章《闭包》