aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Anderson <mark@andemark.io>2025-09-29 05:43:15 +0000
committerMark Anderson <mark@andemark.io>2025-09-29 05:43:15 +0000
commit6206405ad44aa3c06e5270d929a67133ec993a9e (patch)
treeb061b3d447742e4b0cb8e3250d539b1e29ef66d9
parentb35e6ce2c209fad4aed4c1cb66ea0840143cbed1 (diff)
downloadperlweeklychallenge-club-6206405ad44aa3c06e5270d929a67133ec993a9e.tar.gz
perlweeklychallenge-club-6206405ad44aa3c06e5270d929a67133ec993a9e.tar.bz2
perlweeklychallenge-club-6206405ad44aa3c06e5270d929a67133ec993a9e.zip
Challenge 341 Solutions (Raku)
-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})
+}