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

24 lines
394 B
Plaintext

###
### make_partition_cleaner
###
## Chapter 5 section 2
sub make_partition {
my $n = shift;
my @agenda = [$n];
return Iterator {
return unless @agenda;
my $item = pop @agenda;
my ($largest, @rest) = @$item;
my $min = $rest[0] || 1;
my $max = int($largest/2);
for ($min .. $max) {
push @agenda, [$largest-$_, $_, @rest];
}
return $item;
};
}