存档

2016年11月 的存档

【Scala函数式编程】【习题】从curry(柯里化)一次看明白scala的函数定义、匿名函数和高阶函数

2016年11月29日 评论已被关闭

相信初入门scala的同学对scala的一般函数定义还是能了解的,但是碰到参数是函数、返回类型是函数或者返回类型可能有返回函数的函数的函数之类的。
首先明确的是柯里化的定义,把一个接受多个参数的函数,变成只接受一个参数的函数。
你可能会疑问,一个参数怎么替代多个参数,其实当它接受完一个参数后,返回一个新的函数,新函数仍然接受一个参数,然后继续返回另一个,一直到所有的参数接受完毕。

到这里如果你不明白柯里化的定义你应该去谷歌下,先大致明白定义,至于为什么要用,先不管,先会用。
我一直不喜欢直接强记硬背严格的格式定义,这样不但痛苦,还很容易忘记,不能真正理解。反而在用的时候发现问题,提出疑问,去探索和尝试的学习和理解效率更高。

前者是学堂式的填鸭教育,后者是充满浪漫主义精神的冒险。废话不多说,入正题。