aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-082/wambash/raku/ch-1.raku15
-rw-r--r--challenge-082/wambash/raku/ch-2.raku18
2 files changed, 33 insertions, 0 deletions
diff --git a/challenge-082/wambash/raku/ch-1.raku b/challenge-082/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..0a706a49d5
--- /dev/null
+++ b/challenge-082/wambash/raku/ch-1.raku
@@ -0,0 +1,15 @@
+#!/usr/bin/env raku
+
+sub common-factors( +@a ) {
+ my $gcd = [gcd] @a;
+ 1, 2 ... $gcd
+ andthen .grep: $gcd %% *
+}
+
+multi MAIN (Bool :$test) {
+ use Test;
+ is common-factors(12, 18), (1,2,3,6);
+ is common-factors(18, 23), (1);
+ is common-factors(6, 9, 15), (1,3);
+ done-testing
+}
diff --git a/challenge-082/wambash/raku/ch-2.raku b/challenge-082/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..6b159c8eaf
--- /dev/null
+++ b/challenge-082/wambash/raku/ch-2.raku
@@ -0,0 +1,18 @@
+#!/usr/bin/env raku
+
+multi iter ( ( (),Empty ) ) {
+ True
+}
+
+multi iter ( (@c,+@a) ) {
+ @a.first: { .head eqv @c.head}, :k
+ andthen \(@c.skip, |@a[0..^ $_], @a[$_].skip.cache||Empty, |@a[$_ ^.. *])
+ orelse False
+}
+
+\((1,2,2,2,3),(1,2),(2,2,3)), *.&iter ... Bool
+andthen .say;
+
+sub interleave-string (@c, +@a) {
+ ...
+}