首页 > 其他 > 详细

柯里化的一点小理解

时间:2016-03-04 19:03:26      阅读:212      评论:0      收藏:0      [点我收藏+]

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

    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)

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

 

柯里化的一点小理解

原文:http://www.cnblogs.com/luckuan/p/5243089.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!