• day4 liaoxuefeng---函数式编程


    一、概述:

            函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!

    Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。

    二、高阶函数:

           1、 编写高阶函数,就是让函数的参数能够接收别的函数。

            一个最简单的高阶函数:    

        def add(x, y, f):
        return f(x) + f(y)

    当我们调用add(-5, 6, abs)时,参数xyf分别接收-56abs,根据函数定义,我们可以推导计算过程为:
      x = -5
      y = 6
      f = abs
      f(x) + f(y) ==> abs(-5) + abs(6) ==> 11
      return 11

        用代码验证一下:

    >>> add(-5, 6, abs)
    11

    2、
    map()/reduce()
    用普通的算法也能写出来,map()或者reduce()就是抽象了算法。
    3、filter()
    4、sorted()

    sorted()是个排序算法,排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来。

    三、返回函数
    高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。

    四、匿名函数
    当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。
    关键字lambda表示匿名函数,冒号前面的x表示函数参数。

    五、装饰器


    六、偏函数




  • 相关阅读:
    国内最火的3款前端开发框架
    Cordova是做什么的
    老师你好。使用cordova生成的hellowold 的安卓5.0版本太高。怎么才可以生成4.4的呢?
    一个类似bootstrap的foundation
    role在标签中的作用是什么?
    如何做到根据不同的进度用不同的颜色显示整个进度条
    wall 和panel有啥区别
    git ignore
    eclipse js 引用跳转
    计划
  • 原文地址:https://www.cnblogs.com/mecy1222/p/7448358.html
Copyright © 2020-2023  润新知