aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-084/markus-holzer/raku/ch-2.raku17
1 files changed, 8 insertions, 9 deletions
diff --git a/challenge-084/markus-holzer/raku/ch-2.raku b/challenge-084/markus-holzer/raku/ch-2.raku
index d369f1000e..e7b70071b7 100644
--- a/challenge-084/markus-holzer/raku/ch-2.raku
+++ b/challenge-084/markus-holzer/raku/ch-2.raku
@@ -6,15 +6,14 @@ my @matrix[4,4] =
my ( $h, $w ) = @matrix.shape;
-# I had no idea min is also an infix until yesterdays review video
-my @s = gather for [X] 0..^$h, 0..^$w, 1..$h min $w -> ($r, $c, $o) {
- take $r, $c, $o if
- $c + $o < $w && # check boundaries
- $r + $o < $h &&
- all @matrix[ $r+$o; $c+$o ], # check corners
- @matrix[ $r+$o; $c ],
- @matrix[ $r; $c+$o ],
- @matrix[ $r; $c] }
+my @s = gather for [X] 0..^$h, 0..^$w -> ($r, $c) {
+ # I had no idea min is also an infix until yesterdays review video
+ for 1 ..^ ($h min $w) - ($r max $c) -> $o {
+ take $r, $c, $o if
+ @matrix[ $r+$o; $c+$o ] &
+ @matrix[ $r+$o; $c ] &
+ @matrix[ $r; $c+$o ] &
+ @matrix[ $r; $c] }}
say +@s;
"r: {.[0]+1}, c:{.[1]+1}, {.[2]+1}x{.[2]+1}".say for @s.sort(*.[2]);