aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-242/librasteve/raku/ch-1.raku25
-rw-r--r--challenge-242/librasteve/raku/ch-2.raku23
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