From 7da271d93fd1cea187d7527948d029ea7e7f6398 Mon Sep 17 00:00:00 2001 From: Mark <53903062+andemark@users.noreply.github.com> Date: Mon, 6 Nov 2023 06:48:37 +0000 Subject: Challenge 242 Solutions (Raku) --- challenge-242/mark-anderson/raku/ch-1.raku | 12 +++++++++++ challenge-242/mark-anderson/raku/ch-2.raku | 32 ++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 challenge-242/mark-anderson/raku/ch-1.raku create mode 100644 challenge-242/mark-anderson/raku/ch-2.raku diff --git a/challenge-242/mark-anderson/raku/ch-1.raku b/challenge-242/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..145d04bdc5 --- /dev/null +++ b/challenge-242/mark-anderson/raku/ch-1.raku @@ -0,0 +1,12 @@ +#!/usr/bin/env raku +use Test; + +is-deeply missing-members([1,2,3], [2,4,6]), ([1,3], [4,6]); +is-deeply missing-members([1,2,3,3], [1,1,2,2]), ([3],); + +sub missing-members(@a, @b) +{ + # @a (^) @b gives the result in 1 list so I'm doing it like this 🤷 + + grep { .Bool }, ((@a (-) @b), (@b (-) @a))>>.keys>>.sort>>.Array +} diff --git a/challenge-242/mark-anderson/raku/ch-2.raku b/challenge-242/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..c83ac20266 --- /dev/null +++ b/challenge-242/mark-anderson/raku/ch-2.raku @@ -0,0 +1,32 @@ +#!/usr/bin/env raku +use Test; +use Benchy; + +is-deeply flip-matrix(<1 1 0>, <1 0 1>, <0 0 0>), + ((1,0,0), (0,1,0), (1,1,1))>>.Seq; + +is-deeply flip-matrix(<1 1 0 0>, <1 0 0 1>, <0 1 1 1>, <1 0 1 0>), + ((1,1,0,0), (0,1,1,0), (0,0,0,1), (1,0,1,0))>>.Seq; + +benchmark(); + +sub flip-matrix(+@m) +{ + map -> $r { map -> $c { @m[$r;$c] +^ 1 }, (@m.end...0) }, ^@m +} + +sub flip-matrix-slow(+@m) +{ + map { reverse $_ >>+^>> 1 }, @m +} + +sub benchmark +{ + my @m = map { (0,1).roll(100_000) }, ^100_000; + + b 10, { flip-matrix-slow(@m) }, { flip-matrix(@m) } + + # Old: 3.332146938s + # New: 0.8259856s + # NEW version is 4.03x faster +} -- cgit From 8ec93be8b33fe93def163c382c67991d5b65b3a9 Mon Sep 17 00:00:00 2001 From: Mark <53903062+andemark@users.noreply.github.com> Date: Mon, 6 Nov 2023 12:42:52 +0000 Subject: Challenge 242 Solutions (Raku) --- challenge-242/mark-anderson/raku/ch-2.raku | 3 +++ 1 file changed, 3 insertions(+) diff --git a/challenge-242/mark-anderson/raku/ch-2.raku b/challenge-242/mark-anderson/raku/ch-2.raku index c83ac20266..83a75674b6 100644 --- a/challenge-242/mark-anderson/raku/ch-2.raku +++ b/challenge-242/mark-anderson/raku/ch-2.raku @@ -18,6 +18,9 @@ sub flip-matrix(+@m) sub flip-matrix-slow(+@m) { map { reverse $_ >>+^>> 1 }, @m + + # no difference in time + # map { .[.end...0] >>+^>> 1 }, @m } sub benchmark -- cgit