Dan Sugalski wrote: > > At 10:03 PM -0500 2/26/03, Benjamin Goldberg wrote: > >I would not have suggested such a thing. Tail call optomization in > >parrot should be about the same logical semantics as perl5's goto > >&subname (except maybe being faster). > > No it shouldn't. Tail call optimization is far more useful in the case > of: > > sub foo { > # do something > bar(); > } > > or > > sub foo { > # do something > foo(); > } > > than in perl's "goto &foo" feature, if for no other reason (and there > are other reasons) than it's far more common.
The above two things *could* be written as: sub foo { # do something @_ = (); goto &bar; } or sub foo { # do something @_ = (); goto &foo; } These are, for all intents and purposes, tail-call optimized versions of the two functions you showed. True, this might not gain us much speed in perl5, but it demonstrates the type of effect that I think that we're aiming at, for parrot's tail-call optimization -- except of course that in parrot, it would hopefully be faster. -- $;=qq qJ,krleahciPhueerarsintoitq;sub __{0 && my$__;s ee substr$;,$,&&++$__%$,--,1,qq;;;ee; $__>2&&&__}$,=22+$;=~y yiy y;__ while$;;print