Hacker News new | past | comments | ask | show | jobs | submit login

There are two things here: an optimization, and a semantics guarantee. Obviously, if your language provides the guarantee, then implementing it correctly isn't just an optimization. But the original article claims that the transformation proves that proper tail calling is "just an optimization", which it doesn't prove at all. It's still an important semantic guarantee which increases the expressiveness of a language. This is true regardless of whether it is the only means of expressing iteration in a language.



What the factorial example proves is that the set of recursive functions that can run in constant space is larger than just tail-recursive functions.

You're right to say that TCO guarantees increase the expressiveness of a language. If we could provide the same guarantees for an even larger class of recursive functions, it stands to reason our expressiveness would increase even further!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: