aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2019-06-20 22:38:32 +0100
committerGitHub <noreply@github.com>2019-06-20 22:38:32 +0100
commitd64dceb1a82fa6329476452aa46f95a1e0761c05 (patch)
tree7160a5fc7b4d042703e9b8f298ba3d828fdba6d4
parent147d231dd4678fb8dd0ff0b1f82e77b7678e9f28 (diff)
parent984a05308629bc801890cb35a46787e87e940257 (diff)
downloadperlweeklychallenge-club-d64dceb1a82fa6329476452aa46f95a1e0761c05.tar.gz
perlweeklychallenge-club-d64dceb1a82fa6329476452aa46f95a1e0761c05.tar.bz2
perlweeklychallenge-club-d64dceb1a82fa6329476452aa46f95a1e0761c05.zip
Merge pull request #281 from drclaw1394/master
ruben/drclaw solutions for w13 ch1 and ch2. P5 and P6
-rw-r--r--challenge-013/ruben-westerberg/README6
-rwxr-xr-xchallenge-013/ruben-westerberg/perl5/ch-1.pl19
-rwxr-xr-xchallenge-013/ruben-westerberg/perl5/ch-2.pl20
-rwxr-xr-xchallenge-013/ruben-westerberg/perl6/ch-1.p614
-rwxr-xr-xchallenge-013/ruben-westerberg/perl6/ch-2.p617
5 files changed, 72 insertions, 4 deletions
diff --git a/challenge-013/ruben-westerberg/README b/challenge-013/ruben-westerberg/README
index 712bdd1af6..1a3a15799b 100644
--- a/challenge-013/ruben-westerberg/README
+++ b/challenge-013/ruben-westerberg/README
@@ -1,9 +1,7 @@
Solution by Ruben Westerberg
ch-1.pl and ch-1.p6
-Simply run the script
+ Run each program with a single argument 4 digit year to print dates of last Friday of the month
ch-2.pl and ch-2.p6
-Provide two or more command line arguments.
- First is the seperator to use
- Remaining arguments are paths to compare
+ Run each program with the a single parameter argument which is the sequence size to print. If no argument is provided a default value of 10 is used.
diff --git a/challenge-013/ruben-westerberg/perl5/ch-1.pl b/challenge-013/ruben-westerberg/perl5/ch-1.pl
new file mode 100755
index 0000000000..b6162f231c
--- /dev/null
+++ b/challenge-013/ruben-westerberg/perl5/ch-1.pl
@@ -0,0 +1,19 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use v5.24;
+use Time::Piece;
+use Time::Seconds;
+my $d=Time::Piece->strptime($ARGV[0]//"2019", "%Y");
+$d+= (12-$d->day_of_week)*ONE_DAY;
+my $year=$d->year;
+while ($d->year == $year) {
+ state $prev=$d;#-ONE_MONTH;
+ $prev=$d;
+ $d+=ONE_WEEK;
+ if ($d->monname ne $prev->monname ){
+ print $prev->ymd("/")."\n";
+ }
+
+}
+
diff --git a/challenge-013/ruben-westerberg/perl5/ch-2.pl b/challenge-013/ruben-westerberg/perl5/ch-2.pl
new file mode 100755
index 0000000000..aab02c3337
--- /dev/null
+++ b/challenge-013/ruben-westerberg/perl5/ch-2.pl
@@ -0,0 +1,20 @@
+#!/usr/bin/env perl
+use warnings;
+use strict;
+sub male {
+ my $n=shift;
+ $n==0?0:($n-female(male($n-1)));
+}
+
+sub female {
+ my $n=shift;
+ $n==0?1:($n-male(female($n-1)));
+}
+my @male;
+my @female;
+for (0..($ARGV[0]//10)) {
+ push @female, female($_);
+ push @male, male($_);
+}
+print " Male sequence: ",join(", ", @male)."\n";
+print "Femail sequence: ",join(", ", @female)."\n";
diff --git a/challenge-013/ruben-westerberg/perl6/ch-1.p6 b/challenge-013/ruben-westerberg/perl6/ch-1.p6
new file mode 100755
index 0000000000..867debcf90
--- /dev/null
+++ b/challenge-013/ruben-westerberg/perl6/ch-1.p6
@@ -0,0 +1,14 @@
+#!/usr/bin/env perl6
+
+my $d=Date.new(year=>@*ARGS[0]//"2019");
+
+$d+=(12-$d.day-of-week);
+my $year=$d.year;
+while ($d.year == $year) {
+ state $prev=$d;
+ $prev=$d;
+ $d+=7;
+ if ($d.month !== $prev.month ) {
+ print $prev.yyyy-mm-dd~"\n";
+ }
+}
diff --git a/challenge-013/ruben-westerberg/perl6/ch-2.p6 b/challenge-013/ruben-westerberg/perl6/ch-2.p6
new file mode 100755
index 0000000000..caba3d9080
--- /dev/null
+++ b/challenge-013/ruben-westerberg/perl6/ch-2.p6
@@ -0,0 +1,17 @@
+#!/usr/bin/env perl6
+
+sub male ($n) {
+ $n==0??0!!($n - female(male($n-1)));
+}
+
+sub female($n) {
+ $n==0??1!!($n - male(female($n-1)));
+}
+my @male;
+my @female;
+for (0..(@*ARGS[0]//10)) {
+ push @female, female($_);
+ push @male, male($_);
+}
+print " Male sequence: ", @male.join(", "),"\n";
+print "Female sequence: ", @female.join(", "),"\n";