柯里化的一点小理解

Posted luckuan1985

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了柯里化的一点小理解相关的知识,希望对你有一定的参考价值。

假如说我有一个函数,这个函数只有一个参数,这个参数是只有一个参数的函数,比如说

    def f1(p: (Int) => String) {
      println(p(5))
    }

    def p1(x: Int): String = {
      (x + 10).toString
    }
    //执行函数
    f1(p1)

这时我们另外一个函数是这样的

    def p2(x:Int,y:Int):String={
      (x+y).toString
    }

这种情况下,f1将无法调用p2,参数不匹配。但如果将p2改造一下呢?改造好的函数我们设成p3

    def p3(x:Int)(y:Int):String={
      (x+y).toString
    }

 那么f1可以采用以下方式来调用p3函数

 f1(p3(10))

 或者这么来写好理解

    val p4:Int=>String =  p3(10)
    f1(p4)

 我们可以利用柯里化的函数创造一个偏应用函数。

 

以上是关于柯里化的一点小理解的主要内容,如果未能解决你的问题,请参考以下文章

Layui的一点小理解(上)

主仆模式的一点小理解

函数柯里化的理解

js函数柯里化的理解

js函数柯里化的理解

关于FPGA极速交易的一点小总结(安湖科技版本)