aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-341/mark-anderson/raku/ch-1.raku13
-rw-r--r--challenge-341/mark-anderson/raku/ch-2.raku13
2 files changed, 26 insertions, 0 deletions
diff --git a/challenge-341/mark-anderson/raku/ch-1.raku b/challenge-341/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..52cea38299
--- /dev/null
+++ b/challenge-341/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,13 @@
+#!/usr/bin/env raku
+use Test;
+
+is broken-keyboard("Hello World", [< d >] ), 1;
+is broken-keyboard("apple banana cherry", [< a e >]), 0;
+is broken-keyboard("Coding is fun", Empty), 3;
+is broken-keyboard("The Weekly Challenge", [< a b >]), 2;
+is broken-keyboard("Perl and Python", [< p >]), 1;
+
+sub broken-keyboard($str, @keys)
+{
+ $str.words.grep({ none /:i @keys/ }).elems
+}
diff --git a/challenge-341/mark-anderson/raku/ch-2.raku b/challenge-341/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..d7e2dd24db
--- /dev/null
+++ b/challenge-341/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,13 @@
+#!/usr/bin/env raku
+use Test;
+
+is reverse-prefix("programming", "g"), "gorpramming";
+is reverse-prefix("hello", "h"), "hello";
+is reverse-prefix("abcdefghij", "h"), "hgfedcbaij";
+is reverse-prefix("reverse", "s"), "srevere";
+is reverse-prefix("perl", "r"), "repl";
+
+sub reverse-prefix($str, $char)
+{
+ $str.subst(/(.*? $char)/, {$0.flip})
+}