函数式编程之尾调用

2019-03-21  本文已影响0人  Kevin丶CK

1. 尾调用

尾调用(Tail Call)是函数式编程的一个重要概念,本身非常简单,一句话就能说清楚,就是指某个函数的最后一步是返回另一个函数。举个最简单的例子:

function f(x){
  return g(x);
}

上面代码中,函数f的最后一步是调用函数g,这就叫尾调用。

// 情况一
function f(x){
  let y = g(x);
  return y;
}

// 情况二
function f(x){
  return g(x) + 1;
}

// 情况三
function f(x){
  g(x);
}
//等同于
function f(x){
  g(x);
  return undefined;
}

上面代码中,情况一是调用函数g之后,还有赋值操作,所以不属于尾调用,即使语义完全一样。情况二也属于调用后还有操作,即使写在一行内。情况三最后一步是函数g运行最后的操作,再返回空。
尾调用不一定出现在函数尾部,只要是最后一步操作即可。

上一篇 下一篇

猜你喜欢

热点阅读