diff options
| author | Joelle Maslak <jmaslak@antelope.net> | 2019-08-31 10:25:14 -0600 |
|---|---|---|
| committer | Joelle Maslak <jmaslak@antelope.net> | 2019-08-31 10:25:14 -0600 |
| commit | e4d3c76445d4f111bbca710051020ed10bc01b09 (patch) | |
| tree | 37ebe23d9f9b5bfe9b4568faeb4ffc3d3df9fbb2 /challenge-023 | |
| parent | 2bf49312bd22772e640a83ea228a61467aaa5c3a (diff) | |
| download | perlweeklychallenge-club-e4d3c76445d4f111bbca710051020ed10bc01b09.tar.gz perlweeklychallenge-club-e4d3c76445d4f111bbca710051020ed10bc01b09.tar.bz2 perlweeklychallenge-club-e4d3c76445d4f111bbca710051020ed10bc01b09.zip | |
Joelle's solutions to 23.1 in P6 & P5
Diffstat (limited to 'challenge-023')
| -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(" "); +} + + |
