跳到主要内容

Tail Recursive Function

尾递归把累积结果放进参数,使递归调用成为函数的最后一步;在支持尾调用优化的运行时可避免过深栈(注意:多数 JS 引擎对尾调用优化支持有限,极深递归仍宜用循环或 trampoline)。

项目中的实现​

  • 源码: src/tailRecursiveFunction.ts
  • 导出: factorialTailRecursive、sumTailRecursive

各函数示例​

factorialTailRecursive​

import { factorialTailRecursive } from 'wssf-kage-js';

factorialTailRecursive(5); // => 120

sumTailRecursive​

import { sumTailRecursive } from 'wssf-kage-js';

sumTailRecursive([1, 2, 3, 4]); // => 10

什么时候优先用​

  • 教学与对比「线性累积」的写法
  • 深度可控、希望风格接近函数式累加器时