in reply to
Re: Re: Golf: Tree searching
in thread Golf: Tree searching
As koolade pointed out, not all of these
work. Yours in particular goes into deep recursion.
Works in theory is not good enough, in golf you are going
to learn a lot about the assumptions you cannot make.
And yours has at least 2 separate (and serious) mistakes.
BTW the counts as I list them are just for the body of the
sub, so if yours did work it would be 51 characters.
Playing independently I came in with several solutions
that are small, and the following which is similar to
yours really does work at 58:
sub f {
my($s,$t)=@_;$t?$$t{d}eq$s?$t:f($s,$$t{l})||f($s,$$t{r}):0
}
And here, thanks to
koolade, is the test that I use:
$t = {
d => 'd',
l => {
d => 'b',
l => { d => 'a', l => 0, r => 0, },
r => { d => 'c', l => 0, r => 0, },
},
r => {
d => 'f',
l => { d => 'e', l => 0, r => 0, },
r => { d => 'g', l => 0, r => 0, },
}
};
sub test {
my $val = f(@_);
print $val ? "$val->{d}:$val\n" : "$val\n";
}
test('e',$t);
test('O',$t);