diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2019-05-27 14:15:51 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-05-27 14:15:51 +0100 |
| commit | da9460c49a1aed609fbe7837b139334374b15eb7 (patch) | |
| tree | 81348717387b74cfac2ed03d5c19af93099c28ac | |
| parent | 53723f67bc8de3d53d42147a6ece7aa9e0f5be3e (diff) | |
| parent | e15742d406f892256cb0e81e0f9da4c77ffc2b5b (diff) | |
| download | perlweeklychallenge-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.p6 | 27 |
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; +} |
