diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-05-29 12:54:25 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-05-29 12:54:25 +0100 |
| commit | 7dfae77fc7b2c57754b94b1a9670cbd96ec8685d (patch) | |
| tree | b807342c99af09b9b6a57f2e84ab4c0bbc8b8d92 /challenge-010/donald-hunter | |
| parent | 03d70cba4c4ebd24723e324064cc7760a2a2844b (diff) | |
| download | perlweeklychallenge-club-7dfae77fc7b2c57754b94b1a9670cbd96ec8685d.tar.gz perlweeklychallenge-club-7dfae77fc7b2c57754b94b1a9670cbd96ec8685d.tar.bz2 perlweeklychallenge-club-7dfae77fc7b2c57754b94b1a9670cbd96ec8685d.zip | |
- Added solution by Donald Hunter.
Diffstat (limited to 'challenge-010/donald-hunter')
| -rw-r--r-- | challenge-010/donald-hunter/README | 1 | ||||
| -rw-r--r-- | challenge-010/donald-hunter/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-010/donald-hunter/perl6/ch-1.p6 | 23 |
3 files changed, 25 insertions, 0 deletions
diff --git a/challenge-010/donald-hunter/README b/challenge-010/donald-hunter/README new file mode 100644 index 0000000000..2eef878f17 --- /dev/null +++ b/challenge-010/donald-hunter/README @@ -0,0 +1 @@ +Solutions by Donald Hunter. diff --git a/challenge-010/donald-hunter/blog.txt b/challenge-010/donald-hunter/blog.txt new file mode 100644 index 0000000000..e8adf39d31 --- /dev/null +++ b/challenge-010/donald-hunter/blog.txt @@ -0,0 +1 @@ +http://donaldh.wtf/2019/05/roman-numerals-in-perl-6/ diff --git a/challenge-010/donald-hunter/perl6/ch-1.p6 b/challenge-010/donald-hunter/perl6/ch-1.p6 new file mode 100644 index 0000000000..59ee6e1e2a --- /dev/null +++ b/challenge-010/donald-hunter/perl6/ch-1.p6 @@ -0,0 +1,23 @@ +#!/usr/bin/env perl6 + +use v6; + +my %r2i = +'I' => 1, 'IV' => 4, 'V' => 5, 'IX' => 9, +'X' => 10, 'XL' => 40, 'L' => 50, 'XC' => 90, +'C' => 100, 'D' => 500, 'CM' => 900, 'M' => 1000; + +multi MAIN('decode', Str $roman) { + say [+] %r2i{ $roman.split(%r2i.keys, :v).grep(*.Bool) } +} + +my %i2r = %r2i.antipairs; + +multi MAIN('encode', Int $number is copy where 0 <= $number <= 3999) { + say [~] gather { + for %i2r.keys.sort: -* -> $radix { + take %i2r{$radix} x $number / $radix; + $number %= $radix; + } + } +} |
