aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-322/wambash/raku/ch-1.raku23
-rw-r--r--challenge-322/wambash/raku/ch-2.raku19
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;
+}