From a4e198589fa5a8acd8986f4f8820e3fc5b10c87b Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sun, 19 Feb 2023 21:34:25 +0100 Subject: solutions week 204 --- challenge-204/wambash/raku/ch-1.raku | 16 ++++++++++++++++ challenge-204/wambash/raku/ch-2.raku | 28 ++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 challenge-204/wambash/raku/ch-1.raku create mode 100644 challenge-204/wambash/raku/ch-2.raku diff --git a/challenge-204/wambash/raku/ch-1.raku b/challenge-204/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..13322bd090 --- /dev/null +++ b/challenge-204/wambash/raku/ch-1.raku @@ -0,0 +1,16 @@ +#!/usr/bin/env raku +subset Monotonic where { [≥] |$_ or [≤] |$_ }; + +multi monotonic-array ( +@a ) { @a ~~ Monotonic } + +multi MAIN (Bool :test($)!) { + use Test; + is monotonic-array(1,2,2,3), True; + is monotonic-array(1,3,2), False; + is monotonic-array(6,5,5,4), True; + done-testing; +} + +multi MAIN (+@nums) { + say +monotonic-array @nums +} diff --git a/challenge-204/wambash/raku/ch-2.raku b/challenge-204/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..44d34ad833 --- /dev/null +++ b/challenge-204/wambash/raku/ch-2.raku @@ -0,0 +1,28 @@ +#!/usr/bin/env raku + +sub reshape-matrix (+@matrix, :$c!,:$r!) { + CATCH { default { warn $_ } } + @matrix[*;*] + andthen .batch($c) + andthen Array.new: $_, :shape($r;$c)\ + andthen .[$r-1;$c-1] ?? $_ !! Nil +} + +multi MAIN (Bool :test($)!) { + use Test; + CONTROL { + default { + like $_, /:s out of range/; + .resume + } + } + is-deeply reshape-matrix([ [ 1, 2 ], [ 3, 4 ] ]):1r:4c, Array.new: [[ 1, 2, 3, 4 ],], :shape(1,4); + is-deeply reshape-matrix([ 1, 2, 3 ] , [ 4, 5, 6 ]):3r:2c, Array.new: [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ], :shape(3,2); + is-deeply reshape-matrix([ [ 1, 2 ], ]):3r:2c, Nil; + is-deeply reshape-matrix([ [ 1, 2 ], ]):1r:1c, Nil; + done-testing; +} + +multi MAIN (*@matrix, UInt :$r!, UInt :$c!) { + say reshape-matrix(@matrix):$r:$c // 0 +} -- cgit