函数式编程工具:filter和reduce

# -*- 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)出入参数和返回值等其他部分相互通信--通信的功能

 

posted @ 2015-10-25 21:22  Xiao|Deng  阅读(248)  评论(0编辑  收藏  举报