diff options
| -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"; |
