[Mono-devel-list] tailcall support in mcs

tonyg at ulna.lshift.net tonyg at ulna.lshift.net
Wed Sep 17 12:25:31 EDT 2003


> If I understand you it's something the user (developer) will never see as it
> will done behind the scene by the compiler, is it ?

Kind of - if you program in a traditional style, you will not notice whether
tail-call optimization is turned on or not, except that some recursive functions
will run in finite stack space instead of infinite. You may choose to see this as
either a bug or a feature :-) (The Lisp community is divided on this issue, where
the Scheme community pretty definitely sees it as a feature.)

However, if the user/developer can *rely* on the presence of tail-call optimisation,
whole new styles of programming are opened up. In particular, the use of "continuation
passing style" (google knows!) becomes possible, which is an incredibly powerful
tool. Once you grok continuations you may never look back...

More directly to the list: the better Mono supports proper tail-calls, the better
it supports Scheme, the better my compiler will work, and the happier I will be :-)

Tony




More information about the Mono-devel-list mailing list