博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day4 liaoxuefeng---函数式编程
阅读量:5061 次
发布时间:2019-06-12

本文共 748 字,大约阅读时间需要 2 分钟。

一、概述:

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

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

二、高阶函数:

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

        一个最简单的高阶函数:    

def add(x, y, f):    return f(x) + f(y) 当我们调用add(-5, 6, abs)时,参数x,y和f分别接收-5,6和abs,根据函数定义,我们可以推导计算过程为:
  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表示函数参数。 五、装饰器 六、偏函数
 

转载于:https://www.cnblogs.com/mecy1222/p/7448358.html

你可能感兴趣的文章
Android内核sysfs中switch类使用实例
查看>>
POJ2288 Islands and Bridges(TSP:状压DP)
查看>>
POJ3250 Bad Hair Day(单调栈)
查看>>
[No0000195]NoSQL还是SQL?这一篇讲清楚
查看>>
IOS开发UI篇--UITableView的自定义布局==xib布局
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
Python-Web框架的本质
查看>>
Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法
查看>>
struts2中<s:form>的应用
查看>>
QML学习笔记之一
查看>>
7NiuYun云存储UploadPicture
查看>>
Window 的引导过程
查看>>
python与 Ajax跨域请求
查看>>
Java实体书写规范
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
六、PowerDesigner 正向工程 和 逆向工程 说明
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
贪吃蛇游戏改进
查看>>