aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2025-05-23 14:02:26 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2025-05-23 14:02:26 +0200
commit1743ec2a7282b5ba6ab3c2100e949344b332e54a (patch)
treee30bcf63a1e7e2ef9da9acb10cce8a1916a73b51
parentd9a8a0d7aba084dc687dd97473f8739db9387b5c (diff)
downloadperlweeklychallenge-club-1743ec2a7282b5ba6ab3c2100e949344b332e54a.tar.gz
perlweeklychallenge-club-1743ec2a7282b5ba6ab3c2100e949344b332e54a.tar.bz2
perlweeklychallenge-club-1743ec2a7282b5ba6ab3c2100e949344b332e54a.zip
solutions week 321
-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;
+}