diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-08-12 20:03:54 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-12 20:03:54 +0100 |
| commit | d18a357d35fb76c38439ac9629d2b06a9699123e (patch) | |
| tree | 73034bffeb157b30f7992e6b9d89035dd7b66289 | |
| parent | bd9eb24a17a7ed68df7e390960424e86c6a5b55d (diff) | |
| parent | cc6f5e37eaa94165f15a8fb6a9a36c1425dccad2 (diff) | |
| download | perlweeklychallenge-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.txt | 1 | ||||
| -rw-r--r-- | challenge-073/javier-luque/perl/ch-1.pl | 14 | ||||
| -rw-r--r-- | challenge-073/javier-luque/perl/ch-2.pl | 29 | ||||
| -rw-r--r-- | challenge-073/javier-luque/raku/ch-1.p6 | 12 | ||||
| -rw-r--r-- | challenge-073/javier-luque/raku/ch-2.p6 | 27 |
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(', ') ~ ')'; +} |
