From c9d5f2834f979267d8d5db8fdaba52504a0c0b95 Mon Sep 17 00:00:00 2001 From: librasteve Date: Tue, 7 Nov 2023 20:10:58 +0000 Subject: 242 solution --- challenge-242/librasteve/raku/ch-1.raku | 25 +++++++++++++++++++++++++ challenge-242/librasteve/raku/ch-2.raku | 23 +++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 challenge-242/librasteve/raku/ch-1.raku create mode 100644 challenge-242/librasteve/raku/ch-2.raku diff --git a/challenge-242/librasteve/raku/ch-1.raku b/challenge-242/librasteve/raku/ch-1.raku new file mode 100644 index 0000000000..b55852d077 --- /dev/null +++ b/challenge-242/librasteve/raku/ch-1.raku @@ -0,0 +1,25 @@ +use Data::Dump::Tree; +use Test; + +my @tests = [ + %( + arr1 => (1,2,3), + arr2 => (2,4,6), + ), + %( + arr1 => (1,2,3,3), + arr2 => (1,1,2,2), + ), +]; + +sub run( @arrs ) { + + sub missing( [@haystack, @needle] ) { + [(@needle ∖ @haystack).keys] || |[Empty] # Set difference + } + + ($_, $_.reverse).map(*.&missing) given @arrs + +} + +say run([., .]) for @tests; diff --git a/challenge-242/librasteve/raku/ch-2.raku b/challenge-242/librasteve/raku/ch-2.raku new file mode 100644 index 0000000000..4cf11bba8c --- /dev/null +++ b/challenge-242/librasteve/raku/ch-2.raku @@ -0,0 +1,23 @@ +use Data::Dump::Tree; +use Math::Matrix :MM; +use Test; + + +my @tests = [ + %( + matrix => ([1, 1, 0], [0, 1, 1], [0, 0, 1]), + ), + %( + matrix => ([1, 1, 0], [1, 0, 1], [0, 0, 0]), + ), + %( + matrix => ([1, 1, 0, 0], [1, 0, 0, 1], [0, 1, 1, 1], [1, 0, 1, 0]), + ), +]; + +sub run( @matrix ) { + my @nm = @matrix.map(*.reverse.map(+*.not)); + MM @nm +} + +say run(.) for @tests -- cgit