• 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
  • 相关阅读:
    【shell脚本】批量修改扩展名===modifyExtension.sh
    【shell脚本】打印九九乘法表
    【shell脚本】显示进度条
    【Linux命令】Linux压缩及解压命令
    【Linux命令】ulimit设置最大文件打开数
    【mysql】修改mysql数据库密码
    【raid级别】RAID级别工作模式
    MyBatis之#{} and ${}
    MyBatis之foreach
    强制修改常量的值
  • 原文地址:https://www.cnblogs.com/zyybky/p/12842730.html
Copyright © 2020-2023  润新知