generated at
末尾呼び出し
tail call
関数の末尾呼び出し
関数の最後に呼ばれる関数呼び出しのこと
謎に難しく捉えていたが、文字通りの意味mrsekut


具体例 ref
この関数では、 b の呼び出しが末尾呼び出し
example.c
function foo(data) { a(data); return b(data); }
関数の「最後に呼ばれる」というタイミングの話なので、関数の「最後に書かれているかどうか」は関係ない
ex.c
// b, cは末尾呼び出し function bar(data) { if ( a(data) ) { return b(data); } return c(data); }
ex.c
// aは末尾呼び出し function foo2(data) { var ret = a(data); return ret; }
逆に最後の行に書かれていたからと言ってそれが末尾呼び出しとは限らない
ex.c
function foo1(data) { return a(data) + 1; }
この場合、 a の呼び出しは、末尾呼び出しではない
関数ではないが、 + が末尾呼び出し的なやつになっているので。



関連
末尾呼び出しの特殊パターン


参考
くわしー