aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-282/wambash/raku/ch-1.raku19
-rw-r--r--challenge-282/wambash/raku/ch-2.raku19
2 files changed, 38 insertions, 0 deletions
diff --git a/challenge-282/wambash/raku/ch-1.raku b/challenge-282/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..8576ac1e50
--- /dev/null
+++ b/challenge-282/wambash/raku/ch-1.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+
+sub good-integer ($int) {
+ $int
+ andthen .comb: / (\d) $0+ /
+ andthen .first: *.chars == 3
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is good-integer(12344456), '444';
+ is good-integer(1233334), Nil;
+ is good-integer(10020003), '000';
+ done-testing;
+}
+
+multi MAIN ($int) {
+ say good-integer( $int ) // -1;
+}
diff --git a/challenge-282/wambash/raku/ch-2.raku b/challenge-282/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..4a69d904ef
--- /dev/null
+++ b/challenge-282/wambash/raku/ch-2.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+
+sub changing-keys ($str) {
+ $str.fc
+ andthen .comb: / (.) $0* /
+ andthen .elems - 1
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is changing-keys('pPeERrLl'), 3;
+ is changing-keys('rRr'), 0;
+ is changing-keys('GoO'), 1;
+ done-testing;
+}
+
+multi MAIN ($str) {
+ say changing-keys $str
+}