Files
devops/perl/Examples/Chap5/make-dfs
2025-09-17 16:08:16 +08:00

25 lines
394 B
Plaintext

###
### make-dfs-search
###
## Chapter 5 section 3
use Iterator_Utils 'Iterator';
sub make_dfs_search {
my ($root, $children, $is_interesting) = @_;
my @agenda = $root;
return Iterator {
while (@agenda) {
my $node = pop @agenda;
push @agenda, $children->($node);
return $node if !$is_interesting || $is_interesting->($node);
}
return;
};
}
1;