• python 柯里化**


    1、柯里化定义:

      指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。
      z = f(x, y) 转换成 z = f(x)(y) 的形式

    2、实例:

      已知函数 add(x, y),该函数功能为:返回 x + y 值,求柯里化后,使其可以如下 add(4)(5) 的形式:

    def add(x, y):
        return x + y
    print(add(4, 5))
    
    # 柯里化
    def add1(x):         # 步骤1:先定义一个函数(一参)
        def func(y):     # 步骤3:定义返回函数(一参)
            return x + y
        return func      # 步骤2:返回函数
    
    fn = add1(4)         # 返回函数
    print(fn(5))         # 9
    print(add1(4)(5))    # 9

      建议:逆推!使用函数递归完成柯里化:原来函数调用为 add(4, 5),柯里化目标是 add(4)(5),两个括号两次函数调用,第一次函数调用返回仍然是函数。

      add 函数再拓展:

      已知函数 add(x, y, z) 求柯里化后,使其可以如下 add(4)(5, 6) 的形式:

    def add(x):
        def func(y, z):
            return x + y + z
        return func
    print(add(4)(5, 6))    # 15

      已知函数 add(x, y, z) 求柯里化后,使其可以如下 add(4)(5)(6) 的形式:

    def add(x):
        def func(y):
            def func1(z):
                return x + y + z
            return func1
        return func
    print(add(4)(5)(6))    # 15

      已知函数 add(x, y, z) 求柯里化后,使其可以如下 add(4, 5)(6) 的形式:

    def add(x, y):
        def func(z):
            return x + y + z
        return func
    print(add(4, 5)(6))    # 15
  • 相关阅读:
    迭代器,生成器,列表推倒式
    内置函数
    递归与二分算法
    装饰器
    函数进阶
    函数
    MLP神经网络 隐含层节点数的设置】如何设置神经网络隐藏层 的神经元个数
    用CNN及MLP等方法识别minist数据集
    ubuntu 安装Pangolin 过程
    ubuntu16.04 + Kdevelop + ROS开发和创建catkin_ws工作空间
  • 原文地址:https://www.cnblogs.com/zyybky/p/12842730.html
Copyright © 2020-2023  润新知