python函数式编程FP---学习笔记

主要是跟着廖老师的学习教材学习

函数式编程FP

函数是把一段能够实现某种特定功能的代码取了一个名字,在这之后调用这个名字即可实现功能的一种封装。把一个复杂任务通过层层函数调用简单化。
函数式编程——Functional Programming能够调用多个函数来实现功能。
函数式编程是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,而python允许使用变量,因此python不是纯函数式编程语言。
在这里插入图片描述

高阶函数

函数名也是变量,若把一些内置函数定义成数值,那么就会丧失原有功能。

>>> str = 10
>>> str(-10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

可以使用del str来恢复pow函数。当然最好还是重启python交互环境。
函数式编程的参数可以为函数`

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

print(add(-5, 6, str))
-56

map/reduce

map

map() 函数语法:
map(function, iterable)
map作用在于把iterable内的每个元素都调用一次function,返回每次function返回值组成的iterator.
map接收两个参数,一个是函数,另一个是可迭代对象(比如list,tuple),map结果返回一个iterator(惰性序列),因此我们可以通过list()函数来把整个序列计算出来返回一个list,也可以巧妙运用list的append方法生成一个新的list.

reduce

reduce() 函数语法:
reduce(function, iterable[, initializer])
initializer为可选参数。
有别于map的是
1.reduce中的function必须接受两个参数,把结果当做新参数再与序列下一个元素放入function进行计算。最简单的例子就是sum除了内建函数还可以这样实现

from functools import reduce
def add(x,y):
    return x+y
print(reduce(add,range(0,10)))

通过匿名函数lambda,代码还能进一步简化


                
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值