函数式编程
2018-06-10 本文已影响52人
crystalcd
函数式编程
- 函数式编程的特点:允许把函数本身作为参数传入另一个函数,还允许返回一个函数
- 把函数作为参数传入,这样的函数成为高阶函数,函数式编程就是指这种高度抽象的编程范式。
map/reduce
-
map()
函数接收两个参数,一个是函数,一个是可迭代对象,map
将传入的函数一次作用到序列的每个元素,并把结果作为新的迭代对象返回。 -
reduce
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,redece
把结果继续和序列的下一个元素做累计计算reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
filter
-
filter()
用于过滤序列, 和map()
类似,filter()
也接收一个函数和一个序列。和map()
不同的是,filter()
把传入的函数依次作用于每个元素,然后根据返回值是True
还是False
决定保留还是丢弃该元素
sorted
-
sorted()
函数是一个高阶函数,它还可以接收一个key
函数来实现自定义的排序sorted([36, 5, -12, 9, -21], key = abs)
-
若要进行反向排序,不必改动key函数,可以传入第三个参数
reverse=True