1.函数作为返回值
eg:
调用执行结果如下:
在函数lazy_sum
中又定义了函数sum
,并且,内部函数sum
可以引用外部函数lazy_sum
的参数和局部变量(eg:args),当lazy_sum
返回函数sum
时,相关参数和变量都保存在返回的函数中。 调用lazy_sum()
时,返回的并不是求和结果,而是求和函数; 调用函数f
时,才真正计算求和的结果.
2.lambda用来定义函数最好不过了。比如下面这些用法:
在用lambda定义了一个函数之后,调用 f 发现报错;如果调用f(25)则得到625. ; 而lambda定义的f函数也可以顺利的应用到liast(map(f,[1,2,3,4]))中。
3.