首页 > 代码库 > 函数式编程 & Python中的高阶函数map reduce filter 和sorted

函数式编程 & Python中的高阶函数map reduce filter 和sorted

1. 函数式编程

    1)概念

    函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念。wiki

    我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数式编程的第一型。在面向对象编程中,我们把对象传来传去,那在函数式编程中,我们要做的是把函数传来传去,而这个,说成术语,我们把他叫做高阶函数。飞林沙

   2)特点

  • 计算视为视为函数而非指令
  • 纯函数式编程:不需变量,无副作用,测试简单(每次的执行结果是一样的)
  • 支持高阶函数,代码简洁

2. python支持函数式编程

  • 不是纯函数式编程:允许有变量
  • 支持高阶函数:函数也可以作为参数(变量)传入
  • 支持闭包:有了闭包就能返回函数
  • 有限度的支持匿名函数

 3. python中的高阶函数

     1)自定义高阶函数(函数作为参数)

import math
def add(x, y, f):
    return f(x) + f(y)
print add(25, 9, math.sqrt)

    2)内置高阶函数

  • map函数

     格式:map(f, lst)

             f为函数名称,可以是内置函数,也可以是自定义的函数

             lst为待处理的序列,类型可以是list,tuple 以及 string等,序列就可以

     功能:lst中的每个元素执行f函数的操作

      例如:假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:输入:[‘adam‘, ‘LISA‘, ‘barT‘]   输出:[‘Adam‘, ‘Lisa‘, ‘Bart‘]

def format_name(s):
    return s[0].upper()+s[1:].lower()

print map(format_name, [adam, LISA, barT])

 

函数式编程 & Python中的高阶函数map reduce filter 和sorted