scala中的柯里化

scala中的柯里化

先看看百科当中的关于柯里化的介绍

在计算机科学中,柯里化(英语:Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
在直觉上,柯里化声称“如果你固定某些参数,你将得到接受余下参数的一个函数”。所以对于有两个变量的函数 y x {\displaystyle y^{x}} y^{x},如果固定了 y = 2 {\displaystyle y=2} y=2,则得到有一个变量的函数 2 x {\displaystyle 2^{x}} 2^{x}。

接着看看scala当中的柯里化

看如下代码:
需求:实现两个参数相加

 //普通方法1 参数为两个的方法
    def method1(x:Int,y:Int):Int={
      x+y
    }
    //调用
    val i1: Int = method1(1,2)

    println(i1)

    //普通方法2 参数为一个的方法
    def method2(x:Int):Int=>Int={
      (y:Int)=>{x+y} //返回一个Int=>Int类型函数
    }

    val intToInt2: Int => Int = method2(1)
    val i2: Int = intToInt2(2) //调用返回的函数
    println(i2)

    //柯里化的方法
    def method(x:Int)(y:Int):Int={
      x+y
    }

    //调用方式一
    val i4: Int = method(1)(2)
    println(i4)
    //调用方式二
    val intToInt: Int => Int = method(1) //返回一个
    val i3: Int = intToInt(2)
    println(i3)

普通方法一 必须输入两个参数才能得到结果
普通方法二可以实现百科中柯里化的效果 但是只能依次调用获取函数输出结果
柯里化方法可以两个参数一起传递得到结果 也可以传一个参数得函数
实际上就是方法二的一个简化,使得函数调用更加灵活。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值