函数式编程的思想其实就是, 将一大段代码拆分成函数, 通过函数来实现一层逻辑一层逻辑的调用, 使得复杂的任务被分解成简单的任务.
函数式编程就是一种抽象度很高的变成范式, 纯粹的函数式编程语言写的函数没有变量, 因此, 任意一个函数, 只要输入是确定的, 输出就是确定的, 这种存储的函数我们称之为没有副作用(Haskell). 而允许使用变量的程序设计语言, 由于函数内部的变量状态不确定, 同样的输入, 可能得到不同的输出, 因此, 这种函数是有副作用的.
函数式编程的一个特点就是, 允许函数本身作为参数传入另一个函数, 还允许返回一个函数.
Python所支持的函数式编程并非纯函数式编程, 因为Python允许使用变量. 其次, Python所支持的函数式编程是具有函数式编程所具有的特点, 函数本身可作为参数传给另一个函数, 还允许返回一个函数, 最好的实践方式的体现其实就是Python中的装饰器以及高级函数(接受另一个函数作为参数的函数, map, reduce, filter, sorted)
map(func, iter) 将func作用于iter中每一个元素, 并返回一个新的iter
reduce(func, iter) 将func作用于iter, 返回一个最后结果值
filter(func, iter) 将func作用于iter中每一个元素, 根据func的返回值是否为True来决定是否保留当前元素
sorted(iter, key=func) 将func作用于iter每个元素, 并将返回结果排序
网友评论