zoukankan      html  css  js  c++  java
  • swift的柯里化demo

    func baseFunc(go:String, goo:String) -> String {

            return "hello" + go + goo;

        }

        

        func CurryFunc(baseFun:@escaping (String,String)->String) ->(String) -> (String)->String {

            func returnFun(other:String)->(String)->String{

                func inReturnFun(inner:String) -> String{

                    return baseFun(inner,other);

                }

                return inReturnFun;

            }

            

            return returnFun;

        }

           let e = self.CurryFunc(baseFun: baseFunc)("fist");

            

            print(e);

            

            let x = self.CurryFunc(baseFun: baseFunc)("fist")("otehr");

            

            print(x);

            

            let go = self.CurryFunc(baseFun: { (a, b) -> String in

                return a + b;

            });

    e () -> () 0x0000000105848190 FunctionGoo`partial apply forwarder for

     inReturnFun #1 (inner: Swift.String) -> Swift.String

    in returnFun #1 (other: Swift.String) -> (Swift.String) -> Swift.String

    in FunctionGoo.ViewController.CurryFunc(baseFun: (Swift.String, Swift.String) -> Swift.String) -> (Swift.String) -> (Swift.String) -> Swift.String

    at <compiler-generated>

  • 相关阅读:
    Electron应用打包、自动升级
    使用javascript处理nginx的请求
    使用Electron开发桌面应用
    VSCode、VBox搭建C/C++开发环境
    树莓派搭建Nexus2私服
    Tom猫小游戏功能实现
    如何配置webpack让浏览器自动补全前缀
    git 常用操作
    数组的一些常用操作
    ES6 的模块化
  • 原文地址:https://www.cnblogs.com/feng9exe/p/11365749.html
Copyright © 2011-2022 走看看