1
Name:
Anonymous
2006-06-26 10:56
I'm testing something, and I'm stuck trying to write a Perl equivalent of this function because Perl's syntax is made of ugly, rudimentary, hack and fail. Could you please show me how to do this very simple thing in Perl?
function f($i = 1, $r = 17) {
return --$r <= 0 ? null : array($i => f($i + 2, $r), $i + 1 => f($i + 3, $r));
}
Thanks!
9
Name:
Anonymous
2006-06-26 21:12
Wow I didn't know you fags didn't perl. Now I can't trust any of you when you say it sucks simply because you are obviously ignorant
sub df { return defined($_[0])?$_[0]:$_[1]; }
sub f {
my ($i,$r) = (df($_[0],1),df($_[1],17));
return --$r <= 0 ? undef : { $i => f($i + 2, $r), ($i + 1) => f($i + 3, $r) };
}
or
sub f {
my $i = defined($_[0])?$_[0]:1;
my $r = defined($_[1])?$_[1]:17;
return --$r <= 0 ? undef : { $i => f($i + 2, $r), ($i + 1) => f($i + 3, $r) };
}
Your PHP function is quite ugly
sub f {
my ($i,$r) = (df($_[0],1),df($_[1],17));
if (--$r <= 0) { return undef; }
return { $i => f($i + 2, $r), ($i + 1) => f($i + 3, $r) };
}