aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-04-27 18:59:11 +0100
committerGitHub <noreply@github.com>2024-04-27 18:59:11 +0100
commit39790cae1c3d9cb972543e50e9081bf05e925c4e (patch)
treeb602e340af7a613bbfac7d127235244c3d706154
parent0d72e13e495ea2bdee9e8082f81b1182a710ceed (diff)
parent9bc4fc49092614774c603336f5d86040d6618269 (diff)
downloadperlweeklychallenge-club-39790cae1c3d9cb972543e50e9081bf05e925c4e.tar.gz
perlweeklychallenge-club-39790cae1c3d9cb972543e50e9081bf05e925c4e.tar.bz2
perlweeklychallenge-club-39790cae1c3d9cb972543e50e9081bf05e925c4e.zip
Merge pull request #9993 from wambash/challenge-week-266
solutions week 266
-rw-r--r--challenge-266/wambash/raku/ch-1.raku20
-rw-r--r--challenge-266/wambash/raku/ch-2.raku41
2 files changed, 61 insertions, 0 deletions
diff --git a/challenge-266/wambash/raku/ch-1.raku b/challenge-266/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..450372d232
--- /dev/null
+++ b/challenge-266/wambash/raku/ch-1.raku
@@ -0,0 +1,20 @@
+#!/usr/bin/env raku
+
+sub uncommon-words (+lines) {
+ lines
+ andthen .words
+ andthen .Bag
+ andthen .nodemap: * == 1
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ cmp-ok uncommon-words('Mango is sweet', 'Mango is sour'), &[≡],('sweet','sour');
+ cmp-ok uncommon-words('Mango is Mango', 'Orange is Orange'), &[≡], Empty;
+ cmp-ok uncommon-words('Mango Mango', 'Orange'), &[≡], ('Orange');
+ done-testing;
+}
+
+multi MAIN (+lines) {
+ put uncommon-words lines
+}
diff --git a/challenge-266/wambash/raku/ch-2.raku b/challenge-266/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..0e281291af
--- /dev/null
+++ b/challenge-266/wambash/raku/ch-2.raku
@@ -0,0 +1,41 @@
+#!/usr/bin/env raku
+
+sub x-matrix (+matrix) {
+ my $n = matrix.elems;
+ my @x-index = ( (^$n Z=> ^$n) Z, (^$n Z=> reverse ^$n) andthen .map: { set |$_ } );
+
+ matrix
+ andthen .pairs
+ andthen .map: { set .key «=>« |.value.grep: * !== 0,:k }\
+ andthen $_ Z≡ @x-index
+ andthen .all
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+
+ is x-matrix(
+ [1, 0, 0, 2],
+ [0, 3, 4, 0],
+ [0, 5, 6, 0],
+ [7, 0, 0, 1],
+ ), True;
+
+ is x-matrix(
+ [1, 2, 3],
+ [4, 5, 6],
+ [7, 8, 9],
+ ), False;
+
+ is x-matrix(
+ [1, 0, 2],
+ [0, 3, 0],
+ [4, 0, 5],
+ ), True;
+
+ done-testing;
+}
+
+multi MAIN (+matrix) {
+ say ?x-matrix matrix.map: *.comb: /\d+/
+}