aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-08-12 20:03:54 +0100
committerGitHub <noreply@github.com>2020-08-12 20:03:54 +0100
commitd18a357d35fb76c38439ac9629d2b06a9699123e (patch)
tree73034bffeb157b30f7992e6b9d89035dd7b66289
parentbd9eb24a17a7ed68df7e390960424e86c6a5b55d (diff)
parentcc6f5e37eaa94165f15a8fb6a9a36c1425dccad2 (diff)
downloadperlweeklychallenge-club-d18a357d35fb76c38439ac9629d2b06a9699123e.tar.gz
perlweeklychallenge-club-d18a357d35fb76c38439ac9629d2b06a9699123e.tar.bz2
perlweeklychallenge-club-d18a357d35fb76c38439ac9629d2b06a9699123e.zip
Merge pull request #2069 from JavierLuque/javier/solutions-73
Solutions to challenge 73 - Javier Luque
-rw-r--r--challenge-073/javier-luque/blog.txt1
-rw-r--r--challenge-073/javier-luque/perl/ch-1.pl14
-rw-r--r--challenge-073/javier-luque/perl/ch-2.pl29
-rw-r--r--challenge-073/javier-luque/raku/ch-1.p612
-rw-r--r--challenge-073/javier-luque/raku/ch-2.p627
5 files changed, 83 insertions, 0 deletions
diff --git a/challenge-073/javier-luque/blog.txt b/challenge-073/javier-luque/blog.txt
new file mode 100644
index 0000000000..dceaed08a5
--- /dev/null
+++ b/challenge-073/javier-luque/blog.txt
@@ -0,0 +1 @@
+https://perlchallenges.wordpress.com/2020/08/12/perl-weekly-challenge-073/
diff --git a/challenge-073/javier-luque/perl/ch-1.pl b/challenge-073/javier-luque/perl/ch-1.pl
new file mode 100644
index 0000000000..27572a7589
--- /dev/null
+++ b/challenge-073/javier-luque/perl/ch-1.pl
@@ -0,0 +1,14 @@
+#!/usr/bin/perl
+# Test: ./ch-1.pl
+use Modern::Perl;
+use List::Util qw /min/;
+
+my @out;
+my @A = (1, 5, 0, 2, 9, 3, 7, 6, 4, 8);
+my $S = 3;
+
+for my $i (2 .. scalar(@A) - 1) {
+ push @out, min $A[$i], $A[$i - 1], $A[$i - 2];
+}
+
+say '(' . (join ', ', @out) . ')';
diff --git a/challenge-073/javier-luque/perl/ch-2.pl b/challenge-073/javier-luque/perl/ch-2.pl
new file mode 100644
index 0000000000..79f1f52b3c
--- /dev/null
+++ b/challenge-073/javier-luque/perl/ch-2.pl
@@ -0,0 +1,29 @@
+#!/usr/bin/perl
+# Test: ./ch-2.pl
+use Modern::Perl;
+
+say smallest_neighbor(7, 8, 3, 12, 10);
+say smallest_neighbor(4, 6, 5);
+
+sub smallest_neighbor {
+ my @A = @_;
+ my @out;
+ my $smallest_so_far;
+
+ for my $i (0 .. scalar(@A) - 1) {
+ if ( defined($smallest_so_far) &&
+ $A[$i] > $smallest_so_far ) {
+ push @out, $smallest_so_far;
+ } else {
+ push @out, 0;
+ }
+
+ $smallest_so_far = $A[$i]
+ unless (defined($smallest_so_far));
+
+ $smallest_so_far = $A[$i]
+ if ($smallest_so_far > $A[$i]);
+ }
+
+ return '(' . (join ', ', @out) . ')';
+}
diff --git a/challenge-073/javier-luque/raku/ch-1.p6 b/challenge-073/javier-luque/raku/ch-1.p6
new file mode 100644
index 0000000000..647df59b6e
--- /dev/null
+++ b/challenge-073/javier-luque/raku/ch-1.p6
@@ -0,0 +1,12 @@
+# Test: perl6 ch-1.p6
+sub MAIN() {
+ my @out;
+ my @A = (1, 5, 0, 2, 9, 3, 7, 6, 4, 8);
+ my $S = 3;
+
+ for (2 .. @A.elems - 1) -> $i {
+ push @out, min @A[$i], @A[$i - 1], @A[$i - 2];
+ }
+
+ say '(' ~ @out.join(", ") ~ ')';
+}
diff --git a/challenge-073/javier-luque/raku/ch-2.p6 b/challenge-073/javier-luque/raku/ch-2.p6
new file mode 100644
index 0000000000..ec1881c41a
--- /dev/null
+++ b/challenge-073/javier-luque/raku/ch-2.p6
@@ -0,0 +1,27 @@
+# Test: perl6 ch-2.p6
+sub MAIN() {
+ say smallest-neighbor((7, 8, 3, 12, 10));
+ say smallest-neighbor((4, 6, 5));
+}
+
+sub smallest-neighbor(@A) {
+ my @out;
+ my $smallest_so_far;
+
+ for (0 .. @A.elems - 1) -> $i {
+ if ( defined($smallest_so_far) &&
+ @A[$i] > $smallest_so_far ) {
+ @out.push($smallest_so_far);
+ } else {
+ @out.push(0);
+ }
+
+ $smallest_so_far = @A[$i]
+ unless (defined($smallest_so_far));
+
+ $smallest_so_far = @A[$i]
+ if ($smallest_so_far > @A[$i]);
+ }
+
+ return '(' ~ @out.join(', ') ~ ')';
+}