aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-331/mark-anderson/raku/ch-1.raku11
-rw-r--r--challenge-331/mark-anderson/raku/ch-2.raku23
2 files changed, 34 insertions, 0 deletions
diff --git a/challenge-331/mark-anderson/raku/ch-1.raku b/challenge-331/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..a2bc216d54
--- /dev/null
+++ b/challenge-331/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,11 @@
+#!/usr/bin/env raku
+use Test;
+
+is last-word("The Weekly Challenge"), 9;
+is last-word(" Hello World "), 5;
+is last-word("Let's begin the fun"), 3;
+
+sub last-word($str)
+{
+ $str.words.tail.chars
+}
diff --git a/challenge-331/mark-anderson/raku/ch-2.raku b/challenge-331/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..229f003d8c
--- /dev/null
+++ b/challenge-331/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+use Test;
+
+ok buddy-strings("fuck", "fcuk");
+nok buddy-strings("love", "love");
+ok buddy-strings("fodo", "food");
+ok buddy-strings("feed", "feed");
+
+sub buddy-strings($s, $t)
+{
+ given $s.comb >>eq<< $t.comb
+ {
+ return $s.comb.Bag.values.any >= 2 if .all;
+
+ given .grep(*.not, :k)
+ {
+ return False unless .elems == 2;
+
+ return $s.substr(.[0], 1) ~ $s.substr(.[1], 1) eq
+ $t.substr(.[1], 1) ~ $t.substr(.[0], 1)
+ }
+ }
+}