swift的柯里化demo

半世苍凉 提交于 2019-11-27 13:29:37

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>

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!