aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-279/wambash/raku/ch-1.raku20
-rw-r--r--challenge-279/wambash/raku/ch-2.raku21
2 files changed, 41 insertions, 0 deletions
diff --git a/challenge-279/wambash/raku/ch-1.raku b/challenge-279/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..8e52054975
--- /dev/null
+++ b/challenge-279/wambash/raku/ch-1.raku
@@ -0,0 +1,20 @@
+#!/usr/bin/env raku
+
+sub sort-letters (@letters,@weights) {
+ @weights Z, @letters
+ andthen .map: { IntStr.new: |$_ }\
+ andthen .sort
+ andthen .join
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is sort-letters(<R E P L>, (3,2,1,4)),'PERL';
+ is sort-letters(<A U R K>, (2,4,1,3)),'RAKU';
+ is sort-letters(<O H Y N P T>, (5, 4, 2, 6, 1, 3)),'PYTHON';
+ done-testing;
+}
+
+multi MAIN ($letters,*@weights) {
+ say sort-letters $letters.comb, @weights
+}
diff --git a/challenge-279/wambash/raku/ch-2.raku b/challenge-279/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..5932519cbb
--- /dev/null
+++ b/challenge-279/wambash/raku/ch-2.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/env raku
+
+sub split-string ($str) {
+ $str
+ andthen .comb: /:i <[aeiou]>/
+ andthen .elems
+ andthen $_ %% 2
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is split-string('perl'), False;
+ is split-string('book'), True;
+ is split-string('good morning'), True;
+ is split-string('Ook'), True;
+ done-testing;
+}
+
+multi MAIN ($str) {
+ say split-string $str
+}