Scala 函数柯里化与闭包

本文探讨了函数式编程中的两个核心概念——闭包和柯里化。闭包是一个能访问其自身作用域以及外部作用域变量的函数,案例中展示了自由变量如何在闭包中起作用。而柯里化则是将多参数函数转化为单参数函数的过程,使得函数调用更加灵活,如示例中add函数的柯里化实现。这两个概念都是函数式编程中简化代码和提高可复用性的关键工具。
摘要由CSDN通过智能技术生成

闭包(Closure): 闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量(函数里局部变量的另外一个函数)。

 

案例:

var a = 3
val sum = (i:Int) => i + a

🌈 自由变量 a 定义在函数的外部,由于函数 sum 引用到了函数外部的定义的变量,函数变量 sum 可称为一个闭包

 

 

柯里化(Currying): 将一个参数列表的多个参数,变成多个参数列表的过程(普通多参数函数编程高阶函数的过程)。

 

案例:

def add(a: Int)( b: Int)={ a + b }

var addFour = add(4)_
println(addFour(5))

🌈 addFour 将接收多个参数的 add 函数,转换称为接收一个单一参数的函数。

函数的柯里化,其实是将函数的参数逻辑变简单,函数可以花一定存在闭包!

 


❤️ END ❤️
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JOEL-T99

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值