diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2019-08-31 17:34:19 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-08-31 17:34:19 +0100 |
| commit | 3057a4a15351c9d1673552206e2f3338e464e527 (patch) | |
| tree | f0b4054bce1a5daf202d894ebdc5767e41a38eb4 | |
| parent | 8d14f4c77f475c0090ae94def68518b2db47383e (diff) | |
| parent | e4d3c76445d4f111bbca710051020ed10bc01b09 (diff) | |
| download | perlweeklychallenge-club-3057a4a15351c9d1673552206e2f3338e464e527.tar.gz perlweeklychallenge-club-3057a4a15351c9d1673552206e2f3338e464e527.tar.bz2 perlweeklychallenge-club-3057a4a15351c9d1673552206e2f3338e464e527.zip | |
Merge pull request #579 from jmaslak/joelle-23-1-1
Joelle's solutions to 23.1 in P6 & P5
| -rwxr-xr-x | challenge-023/joelle-maslak/perl5/ch-1.pl | 36 | ||||
| -rwxr-xr-x | challenge-023/joelle-maslak/perl6/ch-1.p6 | 21 |
2 files changed, 57 insertions, 0 deletions
diff --git a/challenge-023/joelle-maslak/perl5/ch-1.pl b/challenge-023/joelle-maslak/perl5/ch-1.pl new file mode 100755 index 0000000000..5fad5c58f5 --- /dev/null +++ b/challenge-023/joelle-maslak/perl5/ch-1.pl @@ -0,0 +1,36 @@ +#!/usr/bin/env perl +use v5.26; +use strict; +use warnings; + +# Turn on method signatures +use feature 'signatures'; +no warnings 'experimental::signatures'; + +use autodie; + +use List::Util qw(first); + +sub main() { + die "Must provide degree and sequence" unless @ARGV >= 2; + die "Provide only valid numbers" if defined first { $_ !~ /^[0-9]+$/s } @ARGV; + + my $nth = shift @ARGV; + my (@sequence) = @ARGV; + my (@in) = @ARGV; + + for (1..$nth) { + @sequence = (); + my $last; + for my $num (@in) { + push @sequence, $num - $last if defined $last; + $last = $num; + } + @in = @sequence; + } + + say join(" ", @sequence); +} + +main(); + diff --git a/challenge-023/joelle-maslak/perl6/ch-1.p6 b/challenge-023/joelle-maslak/perl6/ch-1.p6 new file mode 100755 index 0000000000..063311ea52 --- /dev/null +++ b/challenge-023/joelle-maslak/perl6/ch-1.p6 @@ -0,0 +1,21 @@ +#!/usr/bin/env perl6 +use v6; + +sub MAIN(UInt:D $nth, *@sequence) { + die "Only provide numbers" if @sequence.first( { $_ !~~ m:s/^ <[ 0 .. 9 ]>+ $/ } ).defined; + + my @in = @sequence; + for 1..$nth { + @sequence = (); + my $last; + for @in -> $num { + @sequence.push: $num - $last if $last.defined; + $last = $num; + } + @in = @sequence; + } + + say @sequence.join(" "); +} + + |
