<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Feb 6, 2010, at 1:17 AM, Evan Cheng wrote:</div><blockquote type="cite"><div>I don't really know enough about how TCO is used by Pure, Haskell, etc. So if you could write this part, I'd appreciate it.<br></div></blockquote></div><br><div>Basically, these languages need to be able to make guarantees that all calls that can be TCO'd will be TCO'd.  Consider that in most functional languages, the standard way to iterate over the list is a tail-recursive function.  In order to avoid stack overflows in almost trivial programs, they <i>must</i> guarantee that TCO will be applied as aggressively as possible.</div><div><br></div><div>--Owen</div></body></html>