aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2019-05-27 14:15:51 +0100
committerGitHub <noreply@github.com>2019-05-27 14:15:51 +0100
commitda9460c49a1aed609fbe7837b139334374b15eb7 (patch)
tree81348717387b74cfac2ed03d5c19af93099c28ac
parent53723f67bc8de3d53d42147a6ece7aa9e0f5be3e (diff)
parente15742d406f892256cb0e81e0f9da4c77ffc2b5b (diff)
downloadperlweeklychallenge-club-da9460c49a1aed609fbe7837b139334374b15eb7.tar.gz
perlweeklychallenge-club-da9460c49a1aed609fbe7837b139334374b15eb7.tar.bz2
perlweeklychallenge-club-da9460c49a1aed609fbe7837b139334374b15eb7.zip
Merge pull request #186 from mienaikage/010-6-1
Add week 10 challenge #1 for Perl 6
-rw-r--r--challenge-010/daniel-mita/perl6/ch-1.p627
1 files changed, 27 insertions, 0 deletions
diff --git a/challenge-010/daniel-mita/perl6/ch-1.p6 b/challenge-010/daniel-mita/perl6/ch-1.p6
new file mode 100644
index 0000000000..f2c847f431
--- /dev/null
+++ b/challenge-010/daniel-mita/perl6/ch-1.p6
@@ -0,0 +1,27 @@
+#!/usr/bin/env perl6
+use v6;
+
+my %letters = ( Ⅰ, |( * X* Ⅴ, Ⅹ ) … * ) Z=> 「IVXLCDM」.comb;
+
+sub MAIN (
+ UInt:D $number where Ⅰ ≤ * < Ⅳ × Ⅹ**Ⅲ #= A positive integer.
+) {
+ say [~] gather {
+ for $number.flip.comb.pairs.reverse {
+ when .value == Ⅳ | Ⅸ {
+ take [~] ( %letters{ Ⅹ ** .key X* Ⅰ, .value + Ⅰ } );
+ }
+ if .value ≥ Ⅴ {
+ take %letters{ Ⅹ ** .key * Ⅴ };
+ }
+ take %letters{ Ⅹ ** .key } x .value % Ⅴ;
+ }
+ }
+}
+
+sub GENERATE-USAGE ( &main, |capture ) {
+ (capture.first ~~ UInt && capture.first ≥ Ⅳ × Ⅹ**Ⅲ
+ ?? "Error:\n Support for numbers greater than MMMCMXCIX not yet implemented.\n\n"
+ !! '')
+ ~ $*USAGE;
+}