函数式编程

函数式编程(Functionalprogramming)
基于lambda演算的一种编程方式
-程序中只有函数
-函数可以作为参数,也可以作为返回值。
-纯函数式编程:LISP,Haskell.
-高阶函数
-返回函数
-匿名函数
-装饰器
-偏函数

函数:
最大程度复用代码。
-存在问题:如果函数很小,造成啰嗦。
-如果函数调用次数少,造成浪费。
-对于阅读者来说,造成阅读流程被迫中断。
lambda表达式(匿名函数)
-一个表达式,函数体相对于简单。
-可以有参数,多个参数用逗号隔开
用法:
-以lambda开头
-紧跟一定参数
-参数后用冒号和表达式隔开
-只是一个表达式,没有return
案例:计算一个数字的100倍
stm = lambda x: 100 * x
print(stm(89))
stm2 = lambda x , y ,z :z+y*10 + z*100
print(stm2(4,5,6))
 
高阶函数
-把函数作为参数使用,叫做高阶参数。
函数名称就是一个变量.
案列:
def funA():
print("ln funA")
funB = funA
funB()
以上带轮得出结论:
-函数名称式变量
-funB和funA只是名称不一样而已。
 

 
系统高阶函数-map

愿意就是映射,即把集合或者列表的元素,按照一定的规则进行操作,生成一个新的列表或者集合。
map函数就是系统提供的具有映射功能的函数,返回值是一个迭代对象。
案列:
l1 = [i for i in range(10)]
l2 = []
for i in l1:
l2.append(i* 10)
print(l2)

#利用map实现

def mulTen(n):
return n * 10
l3 = map(mulTen , l1)
print(type(l3))
for i in l3:
print(i)
 

reduce:
愿意式归并,缩减。
把一个可迭代对象归并成一个结果。
对于函数参数要求:
必须有两个参数,必须有返回结果。
reduce 需要导入functools包。
 
案列:
 
from functools import reduce

def myAdd(x,y):
return x+ y
rst = reduce(myAdd , [1,2,3,4,5,6,7])
print(rst)

转载于:https://www.cnblogs.com/simianchuge/p/10822033.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值