将函数的结果分配给变量会破坏尾递归优化的机会吗?

每当我需要在另一个函数的末尾调用一个函数时,我总是在同一行上调用它,就像这样,return foo(x)

将结果分配给一个变量会破坏尾递归优化的可能性吗?像这样,

function(...)
    ...
    tmp = foo(x)
    return tmp
end
点赞
用户2458544
用户2458544

http://www.lua.org/pil/6.3.html 中可以得到以下翻译:在 Lua 中,只有格式为 return g(...) 的调用才是尾调用。

因此,在这种情况下,您将缺少尾调用优化。

2014-03-07 07:54:46