diff options
| -rw-r--r-- | challenge-084/markus-holzer/raku/ch-2.raku | 17 |
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]); |
