aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-073/simon-proctor/raku/ch-1.raku12
-rw-r--r--challenge-073/simon-proctor/raku/ch-2.raku10
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;
+}