aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2020-10-18 10:22:01 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2020-10-18 10:22:01 +0200
commitab2f49c69379e0ea79872935eca4c06104222c14 (patch)
treee012f7e164b3b55d1a3d0e202f2152b9840c222b
parent1774bf623614b0a632ef11d01e4fedd1bd427bd5 (diff)
downloadperlweeklychallenge-club-ab2f49c69379e0ea79872935eca4c06104222c14.tar.gz
perlweeklychallenge-club-ab2f49c69379e0ea79872935eca4c06104222c14.tar.bz2
perlweeklychallenge-club-ab2f49c69379e0ea79872935eca4c06104222c14.zip
solutions week 082-1 and 082-2 in progress
-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) {
+ ...
+}