aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-330/mark-anderson/raku/ch-1.raku15
-rw-r--r--challenge-330/mark-anderson/raku/ch-2.raku11
2 files changed, 26 insertions, 0 deletions
diff --git a/challenge-330/mark-anderson/raku/ch-1.raku b/challenge-330/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..795efa9bc4
--- /dev/null
+++ b/challenge-330/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,15 @@
+#!/usr/bin/env raku
+use Test;
+
+is clear-digits("cab12"), "c";
+is clear-digits("xy99"), Empty.Str;
+is clear-digits("pa1erl"), "perl";
+
+sub clear-digits($s is copy)
+{
+ loop
+ {
+ $s .= subst(/ (<lower>+) (<digit>+) <?{ $0.chars == $1.chars }> /, :g);
+ return $s unless $/
+ }
+}
diff --git a/challenge-330/mark-anderson/raku/ch-2.raku b/challenge-330/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..ea8d4913aa
--- /dev/null
+++ b/challenge-330/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,11 @@
+#!/usr/bin/env raku
+use Test;
+
+is title-capital("PERL IS gREAT"), "Perl is Great";
+is title-capital("THE weekly challenge"), "The Weekly Challenge";
+is title-capital("YoU ARE A stAR"), "You Are a Star";
+
+sub title-capital($str)
+{
+ $str.lc.wordcase(:where({ .chars > 2 }))
+}