diff options
| -rw-r--r-- | challenge-073/simon-proctor/raku/ch-1.raku | 12 | ||||
| -rw-r--r-- | challenge-073/simon-proctor/raku/ch-2.raku | 10 |
2 files changed, 22 insertions, 0 deletions
diff --git a/challenge-073/simon-proctor/raku/ch-1.raku b/challenge-073/simon-proctor/raku/ch-1.raku new file mode 100644 index 0000000000..b41fc5017d --- /dev/null +++ b/challenge-073/simon-proctor/raku/ch-1.raku @@ -0,0 +1,12 @@ +#!/usr/bin/env raku + +use v6; + +# Print the lowest value in each window of the given list of numbers +sub MAIN( + UInt :$size where { $size > 0 } = 3, #= Size of the sliding window (default 3) + *@numbers where { @numbers.elems >= $size && @numbers.all ~~ Int }, #= List of integers to look at +) { + @numbers.rotor( $size => 1-$size ).map( *.min ).say; +} + diff --git a/challenge-073/simon-proctor/raku/ch-2.raku b/challenge-073/simon-proctor/raku/ch-2.raku new file mode 100644 index 0000000000..43f161e5b3 --- /dev/null +++ b/challenge-073/simon-proctor/raku/ch-2.raku @@ -0,0 +1,10 @@ +#!/usr/bin/env raku + +use v6; + +#| Given a list of Ints for each item return the smallest item before it in the list or 0 if there is none +sub MAIN ( + *@numbers where { $_.all ~~ Int } #= List of integers to check +) { + @numbers.kv.map( -> $i, $v { my $m = @numbers[0..$i].min; $m < $v ?? $m !! 0 } ).say; +} |
