diff options
| -rw-r--r-- | challenge-266/wambash/raku/ch-1.raku | 20 | ||||
| -rw-r--r-- | challenge-266/wambash/raku/ch-2.raku | 41 |
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+/ +} |
