Skip to content

Commit e15742d

Browse files
committed
Add week 10 challenge manwar#1 for Perl 6
1 parent 53723f6 commit e15742d

File tree

1 file changed

+27
-0
lines changed
  • challenge-010/daniel-mita/perl6

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/usr/bin/env perl6
2+
use v6;
3+
4+
my %letters = ( Ⅰ, |( * X* Ⅴ, Ⅹ ) … * ) Z=> IVXLCDM.comb;
5+
6+
sub MAIN (
7+
UInt:D $number where Ⅰ ≤ * < Ⅳ × Ⅹ**#= A positive integer.
8+
) {
9+
say [~] gather {
10+
for $number.flip.comb.pairs.reverse {
11+
when .value ==| Ⅸ {
12+
take [~] ( %letters{ Ⅹ ** .key X* Ⅰ, .value + Ⅰ } );
13+
}
14+
if .value ≥ Ⅴ {
15+
take %letters{ Ⅹ ** .key * Ⅴ };
16+
}
17+
take %letters{ Ⅹ ** .key } x .value % Ⅴ;
18+
}
19+
}
20+
}
21+
22+
sub GENERATE-USAGE ( &main, |capture ) {
23+
(capture.first ~~ UInt && capture.first ≥ Ⅳ × Ⅹ**
24+
?? "Error:\n Support for numbers greater than MMMCMXCIX not yet implemented.\n\n"
25+
!! '')
26+
~ $*USAGE;
27+
}

0 commit comments

Comments
 (0)