内建函数
提起map和reduce想必大家并不陌生,Google公司2003年提出了一个名为MapReduce的编程模型[1],用于处理大规模海量数据,并在之后广泛的应用于Google的各项应用中,2006年Apache的Hadoop项目[2]正式将MapReduce纳入到项目中。 好吧,闲话少说,今天要介绍的是Python函数式编程中的另外两个内建函数map()和reduce(),而不是Google的MapReduce。 YANG发表在《使用eric创建一个PyQt项目》 alioth310发表在《Python设置终端显示颜色、粗体、下划线等效果》
函数式编程讲白了 就是要把函数本身当成变数 传送给其他函数. 函数式编程并不是Python专有的技术 大多程式语言都可以实作出来 如 C的函数指标 C# 的delegate 甚至连JavaScript都可以实作出来. 如果您是专精Java的话 那就只有在Java SE8才开始支援 也就是所谓的Lambda. C的函数指标很早就有了 一般人比较少去接触到这个领域 再加上C# Python也是最近这几年才开始流行 Java更是到了8版才支援 所以才会误以为是新的领域. 近来程式愈来愈复杂 要求的功能愈来愈多 所以函数指标就突显了其强大的功能及重要性. 以abs(-10)函数为例 会返回参数的绝对值. abs为系统的内建函数 但如果把 abs直接印出来会怎样呢? 说实在 熟强型语言的人 是绝对不会去写这种白痴程式的. 但在弱型语言里 却是再正常不过的事. 因为在Python中 函数名称就是变数 他指向一个能计算绝对值的区块程式码. 那如果把abs指到别的地方呢? 这下子 abs将不再计算绝对值了 直接变成了变数的功能. 当然啦 在实际程式码中 我们是不可能白痴到直接把abs给干掉的.