1函数就是面向过程的程序设计的基本单元。
2.函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
3变量可以指向函数
4.函数名可以是变量名
5.一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
map函数:
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
reduce函数:
reduce把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算
filter函数
filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。 可以与lambda函数结合 相当于一个if 语句
如l
ist(filter(lambda x:x%2==1,range(1,20))) 可以筛选出1-20中的奇数
sorted函数:
sorted()函数就可以对list进行排序:可在排序序列后面加入参数,按照不同关键子排序, reverse=true 可以实现反转排序
返回函数:
返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量
如何理解闭包???
匿名函数:
lambda
后面直接跟参数, 表达式,还有执行数据
如
lambda x: x*x range(1,10) 可以计算出1-10的平方
匿名函数还可以传递给变量
一般与reduce filter map结合使用
一般也就一行表达式,必须有返回值
不能有return
可以没有参数,可以有一个或多个参数
装饰器: 不是很理解 ??
偏函数: