Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Tail-call is an implementation detail. The fact that some people think it's as fundamental to programming as the Ten Commandments is to the Judeo-Christian tradition is... well, perhaps more a problem with programmers than with language implementations.

(and yes, it's visible, and that's one reason why I have issues with it -- it's a classic leaky abstraction, except in this case the "leak" is more like a torrential flood)



If your `while'-loops would crash after a certain number of iterations (and use linear memory before that), would you call that an implementation detail or a leaky abstraction? I'd call it a bug.

And special case constructs for linear recursion like `for' and `while' are only a necessary band-aid in languages that do not treat functions properly.


Thank you for making my point eloquently.

The assumption that the way you prefer to write code should be the only way to write code is, well, exactly what I was talking about.




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

Search: