函数式编程 Functional Programming

1. 简介

  • 一种基于 lambda 演算的编程方式

    • 程序中只有函数
    • 函数可以作为参数,也可以作为返回值
  • 纯函数式编程语言
    • LISP
    • Haskell
    • ...
  • Python 函数式编程
    • 只是借鉴函数式编程的一些特点
    • 可以理解成一半函数式一半 Python
  • 相关内容
    • 匿名函数 (lambda);这回先将此项
    • 高阶函数
    • 返回函数
    • 装饰器
    • 偏函数

2. 函数

  • 功能

    • 最大程度复用代码
  • 不足之处
    • 如果函数很小,很短,则会造成啰嗦
    • 如果函数被调用次数少,则会造成浪费
    • 对于阅读者来说,造成阅读流程的被迫中断

3. 匿名函数

3.1 lambda 表达式也称“匿名函数”

  • 不是一个代码块
  • 仅仅是一个表达式
  • 函数体相对简单
  • 可以有参数
  • 若参数超过一个,可以用逗号隔开

3.2 lambda 表达式的用法

  1. lambda 开头
  2. 紧跟一定数量的参数(若有)
  3. 参数后用冒号和表达式主题隔开
  4. 因为只是一个表达式,所以没有 return

3.3 用法示例

例子1

>>> square = lambda x: x ** 2
>>> square(5)
25

例子2

>>> delta = lambda a,b,c: b*b - 4*a*c
>>> delta(1, 2, 1)
0

最新文章

  1. AFNetWorking源码详解(二)
  2. C++类型转换总结
  3. java模拟实现生产者---消费者问题
  4. Openjudge-计算概论(A)-求满足条件的3位数
  5. sqlserver怎么将查询出来的数据存到新的数据库表中
  6. MyBatis从入门到放弃七:二级缓存原理分析
  7. CentOS7 编译安装Nginx+php并配置php-fpm模块
  8. Python操作Excel 之 openpyxl
  9. Github经理和员工开发
  10. Player2.0
  11. mybatis_05动态SQL_if和where
  12. 【JDK和Open JDK】平常使用的JDK和Open JDK有什么区别
  13. 理解call及apply
  14. java 定时任务之一 @Scheduled注解(第一种方法)
  15. XML中DTD,XSD的区别与应用
  16. SQL Server 2008数据库连接错误
  17. 2017面向对象程序设计(Java)第三周学习总结
  18. linux中man 2与man 3区别
  19. Windows 10安装MongoDB(安装&启动)
  20. 从Date类型字段获得当日周几的DAYNAME函数

热门文章

  1. React之this.refs, 实现数据双向绑定
  2. 【Python之路】特别篇--ECMA对象、DOM对象、BOM对象
  3. RestFul是啥
  4. Battle ships HDU - 5093二分匹配
  5. yolov3 in PyTorch
  6. Luogu P5652 基础博弈练习题 (博弈论、图论)
  7. 一键生成koa/koa2项目
  8. vue-loader+webpack配置项目流程
  9. C++入门经典-例8.9-抽象类,纯虚函数,创建纯虚函数
  10. 路由设置中"DHCP服务器"启用或不启用是干嘛的?