diff options
| author | librasteve <librasteve@furnival.net> | 2023-11-07 20:10:58 +0000 |
|---|---|---|
| committer | librasteve <librasteve@furnival.net> | 2023-11-07 20:10:58 +0000 |
| commit | c9d5f2834f979267d8d5db8fdaba52504a0c0b95 (patch) | |
| tree | c05126dc23f84f4f82952ff5d376b0a5e3287d20 | |
| parent | a82dd587d3773d2a36a1fcc4b3c525c031433a4a (diff) | |
| download | perlweeklychallenge-club-c9d5f2834f979267d8d5db8fdaba52504a0c0b95.tar.gz perlweeklychallenge-club-c9d5f2834f979267d8d5db8fdaba52504a0c0b95.tar.bz2 perlweeklychallenge-club-c9d5f2834f979267d8d5db8fdaba52504a0c0b95.zip | |
242 solution
| -rw-r--r-- | challenge-242/librasteve/raku/ch-1.raku | 25 | ||||
| -rw-r--r-- | challenge-242/librasteve/raku/ch-2.raku | 23 |
2 files changed, 48 insertions, 0 deletions
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([.<arr1>, .<arr2>]) 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(.<matrix>) for @tests |
