diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2019-06-20 22:38:32 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-06-20 22:38:32 +0100 |
| commit | d64dceb1a82fa6329476452aa46f95a1e0761c05 (patch) | |
| tree | 7160a5fc7b4d042703e9b8f298ba3d828fdba6d4 | |
| parent | 147d231dd4678fb8dd0ff0b1f82e77b7678e9f28 (diff) | |
| parent | 984a05308629bc801890cb35a46787e87e940257 (diff) | |
| download | perlweeklychallenge-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/README | 6 | ||||
| -rwxr-xr-x | challenge-013/ruben-westerberg/perl5/ch-1.pl | 19 | ||||
| -rwxr-xr-x | challenge-013/ruben-westerberg/perl5/ch-2.pl | 20 | ||||
| -rwxr-xr-x | challenge-013/ruben-westerberg/perl6/ch-1.p6 | 14 | ||||
| -rwxr-xr-x | challenge-013/ruben-westerberg/perl6/ch-2.p6 | 17 |
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"; |
