Algorithm-Combinatorics
view release on metacpan or search on metacpan
Combinatorics.pm view on Meta::CPAN
return __contextualize($iter);
}
sub __permutations_heap {
my ($data) = @_;
__check_params($data, 0);
return __contextualize(__once_iter()) if @$data == 0;
my @a = 0..(@$data-1);
my @c = (0) x (@$data+1); # yeah, there's an spurious $c[0] to make the notation coincide
my $iter = Algorithm::Combinatorics::Iterator->new(sub {
__next_permutation_heap(\@a, \@c) == -1 ? undef : [ @{$data}[@a] ];
}, [ @{$data}[@a] ]);
return __contextualize($iter);
}
sub derangements {
my ($data) = @_;
( run in 0.968 second using v1.01-cache-2.11-cpan-4505f990765 )