柯里化(scala)

柯里化

代码

/*
柯里化  把接收到多个参数的函数变成接受一个单一参数的函数,
返回一个接受余下参数的新函数
 */
object CurrDemo  extends  App{
   //创建一个普通函数
  def add(x:Int,y:Int)=x+y
  println("普通方法(add):"+add(1,3))
  //柯里化后的方法
  def curryAdd(x:Int)(y:Int):Int=x+y
  println("柯里化后的方法(curryAdd):"+curryAdd (1) (3))
  //柯里化的实现过程
  def first(x:Int)=(y:Int)=>{
    x+y
  }
  //first方法调用
  val res1 = first(1)
  val res2 =res1(3)
  println("res2(first):"+res2)

  //curryAdd方法调用
 val one = curryAdd(1)_  //注意必须加下划线
 println("one(curryAdd):"+one(4))

 val list=Array(12,3,4)
 println( list.foldLeft(0)(_+_) )
}

运行结果

普通方法(add):4
柯里化后的方法(curryAdd):4
res2(first):4
one(curryAdd):5
19

Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值