aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-319/wambash/raku/ch-1.raku19
-rw-r--r--challenge-319/wambash/raku/ch-2.raku25
2 files changed, 44 insertions, 0 deletions
diff --git a/challenge-319/wambash/raku/ch-1.raku b/challenge-319/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..e90429cbdf
--- /dev/null
+++ b/challenge-319/wambash/raku/ch-1.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+
+sub word-count (+list) {
+ list
+ andthen .grep: *.contains: / ^<[aeiou]> | <[aeiou]>$ /
+ andthen .elems
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is word-count(<uncode xml raku perl>),2;
+ is word-count(<the weekly challenge>),2;
+ is word-count(<perl python postgres>),0;
+ done-testing;
+}
+
+multi MAIN (+list) {
+ say word-count list
+}
diff --git a/challenge-319/wambash/raku/ch-2.raku b/challenge-319/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..df247ac708
--- /dev/null
+++ b/challenge-319/wambash/raku/ch-2.raku
@@ -0,0 +1,25 @@
+#!/usr/bin/env raku
+use v6.e.*;
+
+sub minimum-common (+arrays) {
+ arrays
+ andthen [∩] $_
+ andthen .keys
+ andthen .min
+
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is minimum-common((1,2,3,4),(3,4,5,6)), 3;
+ is minimum-common((1,2,3),(2,4)), 2;
+ is minimum-common((1,2,3,4),(5,6,7,8)), Inf;
+ done-testing;
+}
+
+ multi MAIN (+arrays) {
+ say do with minimum-common arrays».comb: /\d+/ {
+ when Inf {-1}
+ default {$_}
+ }
+}