博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python之路,Day27 - Python基础-函数式编程介绍
阅读量:2046 次
发布时间:2019-04-28

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

一、函数式编程介绍  

 

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。

函数式编程中的函数这个术语不是指计算机中的函数(实际上是Subroutine),而是指数学中的函数,即自变量的映射。也就是说一个函数的值仅决定于函数参数的值,不依赖其他状态。比如sqrt(x)函数计算x的平方根,只要x不变,不论什么时候调用,调用几次,值都是不变的。

 

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

一、定义

简单说,"函数式编程"是一种(programming paradigm),也就是如何编写程序的方法论。

主要思想是把运算过程尽量写成一系列嵌套的函数调用。举例来说,现在有这样一个数学表达式:

  (1 + 2) * 3 - 4

传统的过程式编程,可能这样写:

  var a = 1 + 2;

  var b = a * 3;

  var c = b - 4;

函数式编程要求使用函数,我们可以把运算过程定义为不同的函数,然后写成下面这样:

  var result = subtract(multiply(add(1,2), 3), 4);

这段代码再演进以下,可以变成这样

add(1,2).multiply(3).subtract(4)

这基本就是自然语言的表达了。再看下面的代码,大家应该一眼就能明白它的意思吧:

merge([1,2],[3,4]).sort().search("2")

因此,函数式编程的代码更容易理解。

要想学好函数式编程,不要玩py,玩Erlang,Haskell。

 

二、高阶函数

变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。

总结:把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。

 

def add(x,y,f):     这里的f实际上是一个函数

    return f(x) + f(y)

 

 

res = add(3,-6,abs)  #这里的abs一个函数,用来取绝对值用的。

print(res)

转载地址:http://yblof.baihongyu.com/

你可能感兴趣的文章
ORACLE表空间扩张
查看>>
oracl 锁表 解锁 杀死进程
查看>>
orcal 循环执行sql
查看>>
web.xml配置监听器,加载数据库信息配置文件ServletContextListener
查看>>
ORACLEL临时表空间扩张
查看>>
java 构造方法
查看>>
java 单例模式
查看>>
java 类被加载
查看>>
判断两个object是否相等
查看>>
hashCode()方法和equal()方法
查看>>
java 并行和并发
查看>>
Java多线程实现的四种方式
查看>>
Java多线程问题总结
查看>>
js 失去焦点自动计算BMI 保留一位小数
查看>>
js Math.round()
查看>>
java内存中的堆栈、堆、静态区、常量池
查看>>
对接输入输出流;封装拷贝; 封装释放资源
查看>>
装饰器设计模式 :实现放大器对声音的放大动能
查看>>
p15 装饰器设计模式:模拟咖啡
查看>>
sax的解析流程
查看>>