aboutsummaryrefslogtreecommitdiff
path: root/challenge-170
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-06-24 10:08:37 +0100
committerGitHub <noreply@github.com>2022-06-24 10:08:37 +0100
commit247e5a8ccbf2ca49929f435a6efc5e7f9c6e4e36 (patch)
treec0a3d6f4638a10a241ddd74c0544b50ff5f05b56 /challenge-170
parent8460b234597754ed3be48a7ee15e013d906d1c17 (diff)
parent280e7c56691d90b0231043175ee405255b4150af (diff)
downloadperlweeklychallenge-club-247e5a8ccbf2ca49929f435a6efc5e7f9c6e4e36.tar.gz
perlweeklychallenge-club-247e5a8ccbf2ca49929f435a6efc5e7f9c6e4e36.tar.bz2
perlweeklychallenge-club-247e5a8ccbf2ca49929f435a6efc5e7f9c6e4e36.zip
Merge pull request #6327 from wambash/challenge-week-170
solutions week 170
Diffstat (limited to 'challenge-170')
-rw-r--r--challenge-170/wambash/raku/ch-1.raku17
-rw-r--r--challenge-170/wambash/raku/ch-2.raku23
2 files changed, 40 insertions, 0 deletions
diff --git a/challenge-170/wambash/raku/ch-1.raku b/challenge-170/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..98d06d5165
--- /dev/null
+++ b/challenge-170/wambash/raku/ch-1.raku
@@ -0,0 +1,17 @@
+#!/usr/bin/env raku
+
+constant Primorial = (
+ ^∞
+ andthen .grep: *.is-prime
+ andthen 1, |[\*] $_
+);
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is Primorial.head(5), (1,2,6,30,210);
+ done-testing;
+}
+
+multi MAIN (UInt $n=10) {
+ put Primorial.head: $n
+}
diff --git a/challenge-170/wambash/raku/ch-2.raku b/challenge-170/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..24af4c6e47
--- /dev/null
+++ b/challenge-170/wambash/raku/ch-2.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+my rule row { (\d+)+ %% ',' };
+my rule matrix { <row>+ %% ';' }
+
+sub kronecker-product (@a, @b) {
+ @a XX* @b
+ andthen .map: *.list
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ my @a:= ( 1,2; 3,4; );
+ my @b:= ( 5,6; 7,8; );
+ my @c:= ( 5,6,10,12; 7,8,14,16; 15,18,20,24; 21,24,28,32 );
+ is-deeply kronecker-product(@a,@b), @c;
+ is '1,2'.match(&row)[0], (1,2);
+ is-deeply '1,2;3,4'.match(&matrix)<row>».[0]».Int, ([1,2],[3,4]);
+ done-testing;
+}
+
+multi MAIN ($a, $b) {
+ say kronecker-product $a.match(&matrix).<row>».[0], $b.match(&matrix).<row>».[0];
+}