diff options
| -rw-r--r-- | challenge-322/wambash/raku/ch-1.raku | 23 | ||||
| -rw-r--r-- | challenge-322/wambash/raku/ch-2.raku | 19 |
2 files changed, 42 insertions, 0 deletions
diff --git a/challenge-322/wambash/raku/ch-1.raku b/challenge-322/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..657faeaa3a --- /dev/null +++ b/challenge-322/wambash/raku/ch-1.raku @@ -0,0 +1,23 @@ +#!/usr/bin/env raku + +sub string-format ($str,:$i=3) { + $str + andthen .comb: /<-[-]>/ + andthen .reverse + andthen .batch: $i + andthen .map: *.reverse.join + andthen .reverse + andthen .join: '-' +} + +multi MAIN (Bool :test($)!) { + use Test; + is string-format('ABC-D-E-F',:3i), 'ABC-DEF'; + is string-format('A-BC-D-E',:2i), 'A-BC-DE'; + is string-format('A-B-CD-E',:4i), 'A-BCDE'; + done-testing; +} + +multi MAIN ($str,:$i=3) { + say string-format $str,:$i; +} diff --git a/challenge-322/wambash/raku/ch-2.raku b/challenge-322/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..4b22eca1df --- /dev/null +++ b/challenge-322/wambash/raku/ch-2.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +sub rank-array (+ints) { + my %ranks := %( ints.sort.squish.antipairs ); + + ints.map: { %ranks{$_} + 1 } +} + +multi MAIN (Bool :test($)!) { + use Test; + is rank-array(55,22,44,33), (4,1,3,2); + is rank-array(10,10,10), (1,1,1); + is rank-array(5,1,1,4,3), (4,1,1,3,2); + done-testing; +} + +multi MAIN (+ints) { + put rank-array ints; +} |
