scala25-CurringCurring(柯里化)

来源:互联网 发布:async.js 157 编辑:程序博客网 时间:2024/05/23 01:24
<span style="font-size:14px;">  def main(args: Array[String]) {    def multiple(x: Int, y: Int) = x * ydef multipleOne(x: Int) = (y: Int) => x * y  //multipleOne类似于第一个函数会做的事情val multipleTwo = multipleOne(1)             //在第一个函数上应用1,换句话说,调用第一个函数并传入1,产生第二个函数multipleTwo(2)                               //在第二个函数上应用2,产生结果    //  println(multipleOne(6)(7))//上述三行代码就是curing的过程,等价于下面2行代码    def curring(x: Int)(y: Int) = x * y      println(curring(1)(2))    val a = Array("Hello", "Spark")    val b = Array("hello", "spark")    println(a.corresponds(b)(_.equalsIgnoreCase(_)))  /*  * curring:实际链接两个传统函数,第一个函数调用带单个名为x的参数,并返回第二个函数的函数值,第二个函数带Int参数y  */     }</span>

0 0
原创粉丝点击