尾递归:一种递归形式,函数在返回前做的最后一件事就是调用自身(或另一个函数),并且不再对递归调用的结果进行额外计算。在支持尾调用优化的语言/编译器中,尾递归常可像循环一样运行,减少栈增长。也常见于术语 tail-recursive(尾递归的)。
/teɪl rɪˈkɝːrʒən/
/teɪl rɪˈkɜːrʒən/
The factorial function can be written using tail recursion.
阶乘函数可以用尾递归来写。
With tail recursion and tail-call optimization, the program avoids building up a deep call stack.
借助尾递归与尾调用优化,程序可以避免累积很深的调用栈。
tail 意为“尾部/末尾”,recursion 源自拉丁语 recurrere(“跑回去、返回”),在计算机领域指“函数自己调用自己”。“tail recursion”字面意思就是“发生在末尾的递归调用”,强调递归调用位于函数执行的最后位置。