Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tail Call Optimization in Go

Does the Go programming language, as of now, optimize tail calls? If not, does it at least optimize tail-recursive calls of a function to itself?

like image 410
dxuhuang Avatar asked Aug 24 '12 03:08

dxuhuang


1 Answers

Everything you can find over the Internet, that "Go supports tailable recursions in some cases", and that was told in mailing list:

It is already there in 6g/8g for certain cases, and in gccgo somewhat more generally.

We do not currently plan to change the language to require that compilers implement tail call optimization in all cases. If you must have a tail call, you use a loop or a goto statement.

To get those cases you'd better dig into golang source, which is open.

like image 140
Rostyslav Dzinko Avatar answered Oct 05 '22 02:10

Rostyslav Dzinko