From 9bc4fc49092614774c603336f5d86040d6618269 Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sat, 27 Apr 2024 11:05:05 +0200 Subject: solutions week 266 --- challenge-266/wambash/raku/ch-1.raku | 20 ++++++++++++++++++ challenge-266/wambash/raku/ch-2.raku | 41 ++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 challenge-266/wambash/raku/ch-1.raku create mode 100644 challenge-266/wambash/raku/ch-2.raku 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+/ +} -- cgit