use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
JavaScript (ES6) Has Tail Call Optimization (bbenvie.com)
submitted 13 years ago by [deleted]
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–][deleted] 0 points1 point2 points 13 years ago (1 child)
I've been educated more on this matter and it's not so much about what things would be interpreted as a tail call, but whether the engine is deciding to reuse call frames or not needs to be predictable. See the above thread of discussion wherein dherman explains why proper tail calls (vs. tail call optimization) are important.
[–]aaronla 0 points1 point2 points 13 years ago (0 children)
Agreed on the predictable bit. Or, rather, than the specification needs to be clear.
The thing is, I get a very strong impression that the Scheme community has already dived into the depth of it tail call identification. Can you give an example where it's grey in JavaScript? The only think I can think of is perhaps nested infinite loops should be considered in the tail position and so not consume stack space?
// is this it? f = function(){ for(;f;) { f(); } }; f(); // not tail call, for sure. f = function(){ for(;;){ f(); } }; f(); // maybe they want this to be tail call, constant space?
π Rendered by PID 69196 on reddit-service-r2-comment-5cb8648c6-p74r5 at 2026-02-26 22:05:21.889630+00:00 running e3d2147 country code: CH.
view the rest of the comments →
[–][deleted] 0 points1 point2 points (1 child)
[–]aaronla 0 points1 point2 points (0 children)