From 2166060f37e749c63770f7a12e870c3b86110623 Mon Sep 17 00:00:00 2001 From: Simon Proctor Date: Mon, 10 Aug 2020 09:53:32 +0100 Subject: List fiddling FTW --- challenge-073/simon-proctor/raku/ch-1.raku | 12 ++++++++++++ challenge-073/simon-proctor/raku/ch-2.raku | 10 ++++++++++ 2 files changed, 22 insertions(+) create mode 100644 challenge-073/simon-proctor/raku/ch-1.raku create mode 100644 challenge-073/simon-proctor/raku/ch-2.raku 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; +} -- cgit