手把手介绍函数式编程:从命令式重构到函数式
序
本文是一篇手把手的函数式编程极简入门介绍,借助代码示例讲解细腻。但又不乏洞见,第一节中列举和点评了函数式种种让眼花缭乱的特质,给出了“理解函数式特质的指南针”:
函数式代码的核心特质就一条:无副作用
本文希望以另辟蹊径的方式来讲解函数式:首先展示我们平常编写的命令式而非函数式的代码示例,然后将这些示例重构成函数式风格。
本文的第一部分选用了简短的数据转换循环,将它们重构成函数式的map
和reduce
。第二部分则对更长的循环代码,将它们分解成多个单元,然后重构各个单元成函数式的。第三部分选用的是有一系列连续的数据转换循环代码,将其拆解成为一个函数式管道(functional pipeline
)。
本文示例代码用的是Kotlin
语言。
理解函数式特质的指南针
有很多函数式编程文章讲解了抽象的函数式技术:
-
组合(
composition
) -
管道(
pipelining
)