aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-321/wambash/raku/ch-1.raku21
-rw-r--r--challenge-321/wambash/raku/ch-2.raku25
2 files changed, 46 insertions, 0 deletions
diff --git a/challenge-321/wambash/raku/ch-1.raku b/challenge-321/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..76e316ecfe
--- /dev/null
+++ b/challenge-321/wambash/raku/ch-1.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/env raku
+
+sub distinct-average (+nums) {
+ nums
+ andthen .sort
+ andthen .cache Z+ .reverse
+ andthen .unique
+ andthen .elems
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is distinct-average(^6), 1;
+ is distinct-average(0,2,4,8,3,5), 2;
+ is distinct-average(7,3,1,0,5,9), 2;
+ done-testing;
+}
+
+multi MAIN (+nums) {
+ say distinct-average nums;
+}
diff --git a/challenge-321/wambash/raku/ch-2.raku b/challenge-321/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..c024d0d2ef
--- /dev/null
+++ b/challenge-321/wambash/raku/ch-2.raku
@@ -0,0 +1,25 @@
+#!/usr/bin/env raku
+sub backspace ($str) {
+ $str.subst: / .<~~>?\# /,:d:g; #
+}
+
+sub backspace-compare (+str) {
+ str
+ andthen .map: &backspace
+ andthen [eq] $_
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is backspace('ab##'), '';
+ is backspace('a#b#'), '';
+ is backspace-compare('ab#c','ad#c'), True;
+ is backspace-compare('ab##','a#b#'), True;
+ is backspace-compare('ab##','a#b#'), True;
+ is backspace-compare('a#b','c'), False;
+ done-testing;
+}
+
+multi MAIN (+str) {
+ say backspace-compare str;
+}