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
什么时候优先用
- 教学与对比「线性累积」的写法
- 深度可控、希望风格接近函数式累加器时