diff options
| -rw-r--r-- | challenge-082/wambash/raku/ch-1.raku | 15 | ||||
| -rw-r--r-- | challenge-082/wambash/raku/ch-2.raku | 18 |
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) { + ... +} |
