aboutsummaryrefslogtreecommitdiff
path: root/challenge-023
diff options
context:
space:
mode:
authorJoelle Maslak <jmaslak@antelope.net>2019-08-31 10:25:14 -0600
committerJoelle Maslak <jmaslak@antelope.net>2019-08-31 10:25:14 -0600
commite4d3c76445d4f111bbca710051020ed10bc01b09 (patch)
tree37ebe23d9f9b5bfe9b4568faeb4ffc3d3df9fbb2 /challenge-023
parent2bf49312bd22772e640a83ea228a61467aaa5c3a (diff)
downloadperlweeklychallenge-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-xchallenge-023/joelle-maslak/perl5/ch-1.pl36
-rwxr-xr-xchallenge-023/joelle-maslak/perl6/ch-1.p621
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(" ");
+}
+
+