But for the curious, something like it can be done using
goto &subalthough whether it is an optimization is debatable.
More code and info in my response
use Carp qw(cluck); my $cluck = 0; sub _f_tail_rec { if($_[0] == 0) { cluck "Goto optimized stack trace" if $cluck; return $_[1] } $_[1] *= $_[0]; $_[0]--; goto &_f_tail_rec; } sub f_tail_rec { @_ = (@_, 1); goto &_f_tail_rec;} my $n = 10; print "f_tail_rec($n) = ".f_tail_rec($n),"\n";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Tail Recursion "Optimising" with goto &sub
by lestrrat (Deacon) on Feb 21, 2003 at 07:03 UTC | |
|
Re: Tail Recursion "Optimising" with goto &sub
by broquaint (Abbot) on Feb 21, 2003 at 10:59 UTC | |
|
Re: Tail Recursion "Optimising" with goto &sub
by bsb (Priest) on Feb 21, 2003 at 02:59 UTC | |
|
Re: Tail Recursion "Optimising" with goto &sub
by Zaxo (Archbishop) on Feb 21, 2003 at 03:04 UTC | |
by bsb (Priest) on Feb 21, 2003 at 03:18 UTC | |
|
Re: Tail Recursion "Optimising" with goto &sub
by diotalevi (Canon) on Feb 21, 2003 at 05:13 UTC |