请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

柯里化有什么意义?

柯里化有什么意义呢?该传的参数一个没少啊,而且括号变多了,反而不容易理解。

正在回答 回答被采纳积分+3

1回答

bennyhuo 2017-11-22 14:43:58

仔细想想为什么当年学数学的时候,会学 a + b = b + a,a + b + c = a + (b + c) 这些定律。

就像你说的,该传的参数一个都没少:显然,你定义了接口,不可能允许别人少传参数给你,也不可能希望这样吧。

柯里化是一种类似的变换,形式上的变换不会带来逻辑语义上的变化否则就不叫变换了。那么变换的意义在哪里?如果你定义了一个有10个参数的 api,那么这10个参数对于调用者来说可能有10个不同模块提供,那么调用者用柯里化就完全可以将你的api柯里化然后依次调用,逻辑上也清晰,A模块传递给 B 模块的是已经应用了 A 所输出的参数的 api 的版本,那么 B模块无需关心 A 的输出是什么,只需要拿着已经变换过的 api 继续执行自己的逻辑即可依次类推。


实际上,这一章的内容大多数 Android 或者 Java 开发者是不适应的,原因在于大家还是比较习惯传统的代码编写,定义个变量,调用方法,返回值,再调用。如果我们把代码的执行流程设计成有一个初始状态,经过一系列变换(函数调用)得到最终的结果,那么类似柯里化这样的变换就会很有用。


至于你说的不容易理解,我们刚刚学习微积分的时候看起来也一样觉得不容易理解~~正常现象啦

6 回复 有任何疑惑可以回复我~
  • 本来我也想问这个的, 现在明白了!!!
    回复 有任何疑惑可以回复我~ 2019-06-07 15:34:20
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信