Python之高阶函数

#
#
#函数式编程
#
#
#函数式编程是一种编程风格(顾名思义)是基于函数的。
#
#函数式编程的关键部分是高阶函数。
#高阶函数将其他函数作为参数,或将其作为结果返回。
#例如:
def apply_twice(func,arg):
    return func(func(arg))
def add_five(x):
    return x + 5

print(apply_twice(add_five, 10))

#
#输出:20
#
#   函数apply_twice将另一个函数作为参数,并在其内部调用两次

#
#例:
def test(func,arg):
    return func(func(arg))
def mult(x):
    return x * x

print(test(mult,2))

#
#输出:16
#
#
#
#纯函数
#
#
#函数式编程试图使用纯函数。
#纯函数没有副作用,并且返回一个仅依赖于它们的参数的值。
#
#这是数学工作中的函数:例如,对于相同的x, cos(x)总是返回相同的结果。
#
#纯函数的例子:
def pure_fun(x,y):
    temp = x + 2*y
    return temp/(2*x +y)

print(pure_fun(2,3))

#非纯函数的例子:
some_list = []

def impure(arg):
    some_list.append(arg)
impure(3)    
print(some_list)
  
#
#上面的函数不是纯函数,因为它改变了some_list的状态。
#
#纯函数的例子:
def func(x):
    y = x**2
    z = x + y
    return z
print(func(4))

#
#
#纯函数
#
#
#纯函数的优点和缺点
#纯函数具备:
#    1.更容易推理和测试
#    2.更高效
#    3.一旦函数有一个输入,结果可以被存储并在下一次需要该输入的函数时被引用,
#      从而减少函数被调用的次数。
#    4.更容易并行运行
#
#
# 仅适用纯函数的主要缺点是它们主要使I/O的其他简单任务复杂化。
# 在某些情况下,它们也可能更难编写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值