码迷,mamicode.com
首页 > 其他好文 > 详细

高阶函数与函数的柯里化

时间:2020-05-20 20:21:18      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:ted   else   返回值   code   bre   自身   function   func   sort   

高阶函数

  • 数学概念: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

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

 

高阶函数与函数的柯里化

标签:ted   else   返回值   code   bre   自身   function   func   sort   

原文地址:https://www.cnblogs.com/fjjj/p/12823059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!