美文网首页ITS·黑客
py函数式编程与高阶函数

py函数式编程与高阶函数

作者: 小灰灰233 | 来源:发表于2017-05-14 18:31 被阅读3次

    一、函数式编程

    抽象程度高,执行效率低
    纯粹的函数式编程编写的函数没有变量,输入确定则输出确定,称之为没有副作用
    允许把函数本身作为参数传入另一个函数,还允许返回一个函数

    二、高阶函数

    1、变量可以指向函数

    abs是函数本身,abs(-10)是函数调用

    函数本身可以赋值给变量
    f=abs
    f(-9)
    9

    2、函数名也是变量

    函数名其实就是指向函数的(默认)变量

    把abs指向其他对象,就无法再调用该函数
    (需重启python交互环境)

    3、传入函数

    高阶函数:一个函数可以接收另一个函数作为参数
    def add(x,y,f)
    return f(x)+f(y)
    调用时add(-5,6,abs)

    三、map/reduce

    (函数)

    1、map

    接收两个参数——函数和iterable
    将函数依次作用到序列的每个元素,并将结果作为新的iterator返回
    def f(x):
    return x*x
    r=map(f,[1,2,3])
    list(r)

    因为r是iterator惰性序列,需要list()将整个序列计算出来并返回一个list

    2、reduce

    把一个函数作用在一个序列上,将结果继续与序列的下一个元素做累积计算
    reduce(f,[x1,x2,x3,x4])=f(f(f(x1,x2)x3)x4)

    from functools import reduce
    def fn(x,y)
    reduce x*10+y

    reduce(fn,[1,2,3,4])
    1234

    相关文章

      网友评论

        本文标题:py函数式编程与高阶函数

        本文链接:https://www.haomeiwen.com/subject/gbjqxxtx.html