aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-08-10 20:54:20 +0100
committerGitHub <noreply@github.com>2020-08-10 20:54:20 +0100
commita93ed0c3c8d3aa98a0b354bc56f36c37ffab2a79 (patch)
tree9b191fe87cdc90fe2729d863c37488c4ee056a5b
parent723864b610e59d3e38292a29c7d3a6ee2666de79 (diff)
parente9e71d1721c05c1722672a7326ec51d4b84fc92f (diff)
downloadperlweeklychallenge-club-a93ed0c3c8d3aa98a0b354bc56f36c37ffab2a79.tar.gz
perlweeklychallenge-club-a93ed0c3c8d3aa98a0b354bc56f36c37ffab2a79.tar.bz2
perlweeklychallenge-club-a93ed0c3c8d3aa98a0b354bc56f36c37ffab2a79.zip
Merge pull request #2067 from therealjcm/branch-for-challenge-073
Weekly challenge #73 raku solution by Jason Messer
-rw-r--r--challenge-073/jason-messer/raku/ch-1.p613
-rw-r--r--challenge-073/jason-messer/raku/ch-2.p620
2 files changed, 33 insertions, 0 deletions
diff --git a/challenge-073/jason-messer/raku/ch-1.p6 b/challenge-073/jason-messer/raku/ch-1.p6
new file mode 100644
index 0000000000..8acc4c931b
--- /dev/null
+++ b/challenge-073/jason-messer/raku/ch-1.p6
@@ -0,0 +1,13 @@
+#! /usr/bin/env rakudo
+
+my @A = (1, 5, 0, 2, 9, 3, 7, 6, 4, 8);
+my $S = 3;
+
+sub min-in-window(:$array, :$window where $window > 0 ) {
+ gather for (0 .. $array.elems - $window) -> $i {
+ take min($array[$i .. $i + $window - 1]);
+ }
+}
+
+say min-in-window :array(@A), :window($S);
+#say min-window :array(['red', 'white', 'blue', 999, 0, 'yellow']), :window(2);
diff --git a/challenge-073/jason-messer/raku/ch-2.p6 b/challenge-073/jason-messer/raku/ch-2.p6
new file mode 100644
index 0000000000..ccf585387a
--- /dev/null
+++ b/challenge-073/jason-messer/raku/ch-2.p6
@@ -0,0 +1,20 @@
+#! /usr/bin/env rakudo
+
+my @A = (7, 8, 3, 12, 10);
+my @B = (4, 5, 6);
+
+# find min number in @A[0..n-1] that is less than n
+sub min-left-lt(@array) {
+ gather for (@array) {
+ state @left;
+ my $min = min(@left);
+
+ if $min < $_ { take $min }
+ else { take 0 }
+
+ @left.append($_);
+ }
+}
+
+say min-left-lt(@A);
+say min-left-lt(@B);