diff options
| author | Ruben Westerberg <drclaw@mac.com> | 2019-12-17 22:20:18 +1000 |
|---|---|---|
| committer | Ruben Westerberg <drclaw@mac.com> | 2019-12-17 22:20:18 +1000 |
| commit | ce39059319051b6945a0fa6fe3dd1c82da69e35a (patch) | |
| tree | f94cbe150b7525ffa982f6e0ef3ed759d0a4bb33 | |
| parent | 4467e7406d93113bd8770780076ac90f29e4354d (diff) | |
| download | perlweeklychallenge-club-ce39059319051b6945a0fa6fe3dd1c82da69e35a.tar.gz perlweeklychallenge-club-ce39059319051b6945a0fa6fe3dd1c82da69e35a.tar.bz2 perlweeklychallenge-club-ce39059319051b6945a0fa6fe3dd1c82da69e35a.zip | |
added ch-1.p6 ch-2.p6
| -rw-r--r-- | challenge-039/ruben-westerberg/README | 5 | ||||
| -rwxr-xr-x | challenge-039/ruben-westerberg/perl/ch-2.pl | 2 | ||||
| -rwxr-xr-x | challenge-039/ruben-westerberg/raku/ch-1.p6 | 20 | ||||
| -rwxr-xr-x | challenge-039/ruben-westerberg/raku/ch-2.p6 | 25 |
4 files changed, 49 insertions, 3 deletions
diff --git a/challenge-039/ruben-westerberg/README b/challenge-039/ruben-westerberg/README index eabb2c8160..ec2a5fe038 100644 --- a/challenge-039/ruben-westerberg/README +++ b/challenge-039/ruben-westerberg/README @@ -2,11 +2,12 @@ Solution by Ruben Westerberg ch-1.pl and ch-1.p6 =================== -Run the program with at least 1 command line argument (7 digit number) to validated and generate a date for each argument. +Run program to process guest log and display the amount of time lights are on ch-2.pl and ch-2.p6 =================== -Run the program to randomly select 7 tiles from a bag and display the possible words and associated score which could be created from the 7 tiles +Run the program with a RPN formated expression ( + - * / supported) as an argument (don't forget to quote). +Output is the result of the RPN expression. A default expression is used if no arguments are present diff --git a/challenge-039/ruben-westerberg/perl/ch-2.pl b/challenge-039/ruben-westerberg/perl/ch-2.pl index c757cd0f98..db2f6f66ca 100755 --- a/challenge-039/ruben-westerberg/perl/ch-2.pl +++ b/challenge-039/ruben-westerberg/perl/ch-2.pl @@ -5,7 +5,7 @@ my @stack; $expression=~s/ +/ /g; print "Input expression: $expression\n"; for (split " ", $expression) { - die "Error in input expression" if !/[\-+]?\d+(\.\d+)*/ && !/[+\-*\/]/; + die "Error in input expression" if !/^[\-+]?\d+(\.\d+)*$/ && !/^[+\-*\/]$/; for ($_) { if ($_ eq "+") { push @stack, pop(@stack)+ pop(@stack); diff --git a/challenge-039/ruben-westerberg/raku/ch-1.p6 b/challenge-039/ruben-westerberg/raku/ch-1.p6 new file mode 100755 index 0000000000..2dcc61c96e --- /dev/null +++ b/challenge-039/ruben-westerberg/raku/ch-1.p6 @@ -0,0 +1,20 @@ +#!/usr/bin/env perl6 + +my @times=DATA().map({ |(for (m:g/(\d**2)\:(\d**2)/) {$_[0]*60+$_[1]*1 });}); +put sprintf "Lights on for %d minutes", @times.max-@times.min; + + +sub DATA () { + my $d=q:to/END/, +1) Alex IN: 09:10 OUT: 09:45 +2) Arnold IN: 09:15 OUT: 09:33 +3) Bob IN: 09:22 OUT: 09:55 +4) Charlie IN: 09:25 OUT: 10:05 +5) Steve IN: 09:33 OUT: 10:01 +6) Roger IN: 09:44 OUT: 10:12 +7) David IN: 09:57 OUT: 10:23 +8) Neil IN: 10:01 OUT: 10:19 +9) Chris IN: 10:10 OUT: 11:00 +END + return $d.lines; +} diff --git a/challenge-039/ruben-westerberg/raku/ch-2.p6 b/challenge-039/ruben-westerberg/raku/ch-2.p6 new file mode 100755 index 0000000000..db9f5a57cc --- /dev/null +++ b/challenge-039/ruben-westerberg/raku/ch-2.p6 @@ -0,0 +1,25 @@ +#!/usr/bin/env perl6 +# +my $expression=@*ARGS[0]//"15 7 1 1 + - / 3 * 2 1 1 + + -"; +my @stack; +$expression ~~ s:g/\s+/ /; +put "Input expression: $expression"; +for $expression.comb: /\S+/ { + die "Error in input expression" if ! /^<[\-\+]>?\d+(\.\d+)*$/ && !/^<[\+\-\*\/]>$/; + when $_ eq "+" { + push(@stack, pop(@stack)+ pop(@stack)); + } + when $_ eq "-" { + push(@stack, pop(@stack)-pop(@stack)); + } + when $_ eq "*" { + push(@stack, pop(@stack)*pop(@stack)); + } + when $_ eq "/" { + push(@stack, pop(@stack)/pop(@stack)); + } + default { + push @stack, $_; + } +} +put "Result: @stack[]"; |
