# -*- coding: utf-8 -*- #python 27 #xiaodeng #函数式编程工具:filter和reduce #python内置函数中,map函数是用来进行函数式编程这类工具最简单的内置函数代数 #函数式编程含义: #一种编程范式,也就是如何编写程序的方法论,是一种编程思想。 #无法给予准确的定义 #函数式编程的编程风格强调表达式计算,而不是执行命令。 #常见函数式编程 #filter:基于某一测试函数过滤出一些元素 #reduce:对每对元素都应用函数并运行到最后结果,两者都返回可迭代对象 #页码:523 #filter, 过滤 print list(filter((lambda x:x>0),range(-5,5)))#[1, 2, 3, 4] #以上等价于: res=[] for x in range(-5,5): if x>0: res.append(x) #为什么在print res时没有缩进呢?因为res他的定义是顶格的,如果print不是顶格,那么两者之间必然存在输出结果的差异 print res#[1, 2, 3, 4] #reduce函数 #一对元素两两运行得到其结果 print reduce((lambda x,y:x+y),[1,2,3,4])#10 print reduce((lambda x,y:x*y),[1,2,3,4])#24 #编写函数通用设计原则: 1)函数尽可能小,尽可能自包含、有单一、统一的用途 2)出入参数和返回值等其他部分相互通信--通信的功能