• 高阶函数与函数的柯里化


    高阶函数

    • 数学概念:y = f(g(x))
    • 高阶函数满足条件:
    1. 输出一个函数
    2. 接收一个或多个函数作为参数
    • 示例
    #调用后返回值为函数
    
    def foo1():
        def add(x,y):
            return x+y
        return add
    
    
    #调用时接受一个或者多个函数
    
    def foo2(add):
        y = add(4,5)
        return y

    自定义sort函数

    在不使用内建函数的情况下,自行实现一个sort函数

    def sort(iterable,*,key = None,reverse = False):123
        newlist = []
        for x in iterable:
            for i,y in enumerate(newlist) :
               if x < y:
                    newlist.insert(i,x)
                        break
            else:
              newlist.append(x)
        return newlist 

    内建高阶函数

    • sorted(iterable,*,key = None,reverse = Flase)   #返回一个新列表
    1. iterable:可迭代对象
    2. key:参数函数,指定排序规则函数
    3. reverse:是否翻转(降序升序)
    • filter(function,iterable)  #iterable返回个迭代器,过滤等效为False的值(当function为None时过滤等效为False的值。如果不为None需要定过滤规则)
    1. function:是个函数参数,返回值应该是bool类型,或其返回值等效为布尔值。默认值是None则可迭代对象的每一个元素自身等效布尔值
    2. iterable可迭代对象
    • map(function,*,iterable)   map object返回可迭代对象。#对多个可迭代对象的元素,按照指定的函数进行映射。(带入函数,返回函数计算出来的返回值)

    函数的柯里化

    • 函数的柯里化指的时将原来接受两个参数的函数,变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数
    • z=f(x,y)转换成z=f(x)(y)
    • 示例
    def add(x,y):
        return x+y
    
    #柯里化后
    
    def add(x):
        def add1(y):
            return x+y
        return add1

    #通过嵌套函数就可以吧函数转换成柯里化函数

  • 相关阅读:
    服务器重启后oracle监听无法打开
    Resport 四则运算
    For循环
    do...while循环
    Day03_Class01
    自学JavaDay02_class02
    自学JavaDay02_class01
    自学JavaDay01
    基本的Dos命令
    MarkDown语法
  • 原文地址:https://www.cnblogs.com/fjjj/p/12823059.html
Copyright © 2020-2023  润新知