- or download this
my @delim = ( ["A", -3, "C"], ["C", -4, "B"] );
my @data = (
...
["C", -2, "B"],
["B", -1, "E"]
);
- or download this
#!/usr/bin/perl -l
use Algorithm::Loops 'NestedLoops';
...
map { my $range = $_; join " ", map "[@$_]", @$range } @rang
+es;
}
);
- or download this
NestedLoops(
[ [0 .. $N], sub {[$_ .. $N]},
( sub {[$_+1 .. $N]}, sub {[$_ .. $N]} ) x $D
],
- or download this
for my $i0 ( 0 .. $N ) {
for my $i1 ( $i0 .. $N ) {
for my $i2 ( $i1+1 .. $N ) {
for my $i3 ( $i2 .. $N ) {
...
- or download this
{ OnlyWhen => sub {
return 0 if @_ < 2*@delim;
...
}
return 1;
} },
- or download this
sub {
my @ranges = map { [@data[ $_[2*$_] .. $_[2*$_+1] ]] } 0 .. $D;
print join " / ",
map { my $range = $_; join " ", map "[@$_]", @$range } @rang
+es;
}
- or download this
[A -4 A] [A -1 C] / [C -4 D] [D -4 B]
[A -4 A] [A -1 C] / [C -4 D] [D -4 B] [B -3 C] [C -2 B]
...
[A -1 C] / [C -4 D] [D -4 B] [B -3 C] [C -2 B]
[A -1 C] / [C -2 B]
[A -1 C] [C -4 D] [D -4 B] [B -3 C] / [C -2 B]
- or download this
my @intervals = NestedLoops(
..
...
return [ map { [@data[ $_[2*$_] .. $_[2*$_+1] ]] } 0 .. $D ]
}
);