"尾函数"

2017-03-29  本文已影响61人  践行者

尾调用

1.尾调用是函数编程的重要概念,指某一个函数的最后一步调用了另一个函数

2.尾调用不一定出现在函数的最后,但一定是函数的最后一步操作

3.函数调用内部形成一个调用桢,保存调用的位置和内部变量等信息,内部的函数嵌套形成 调用栈,尾调用由于是函数最后一个操作,由于位置信息和内部变量步子使用,可以用最后一个函数的调用帧取代外层函数的调用帧,这就是所谓的 尾调用优化

4.只有不在用到外层函数的内部变量,内部函数的调用帧才会取代外层的调用帧

尾递归

1.函数调用自身,为递归;尾调用调用自身,则为尾递归;

2.递归耗费内存是由于需要保存函数的调用帧引起的,容易栈溢出,但是对于尾递归只存在一个调用帧,所以不会发生 栈溢出的错误

3.改写递归函数为尾递归: 把所有用到的内部变量改写为函数的参数

柯里化currying:将多参数的函数转化为单参数的形式
上一篇下一篇

猜你喜欢

热点阅读