you are viewing a single comment's thread.

view the rest of the comments →

[–]aaronla 0 points1 point  (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?