RosettaCodeData/Task/Range-expansion/Perl-6/range-expansion-1.pl6
2016-12-05 22:15:40 +01:00

11 lines
302 B
Raku

sub range-expand (Str $range-description) {
my token number { '-'? \d+ }
my token range { (<&number>) '-' (<&number>) }
$range-description
.split(',')
.map({ .match(&range) ?? $0..$1 !! +$_ })
.flat
}
say range-expand('-6,-3--1,3-5,7-11,14,15,17-20').join(', ');