diff options
| author | chirvasitua <stuart-little@users.noreply.github.com> | 2020-12-10 21:59:06 -0500 |
|---|---|---|
| committer | chirvasitua <stuart-little@users.noreply.github.com> | 2020-12-10 21:59:06 -0500 |
| commit | e7b61bd10d13b38ce576212ff00daf2ac0811fc6 (patch) | |
| tree | cf864c2c2ba2f80cd2735f18aabfd9c635679f93 /challenge-039 | |
| parent | 931e28a9fe63ad0942cf9f3099191a0e21a978c2 (diff) | |
| download | perlweeklychallenge-club-e7b61bd10d13b38ce576212ff00daf2ac0811fc6.tar.gz perlweeklychallenge-club-e7b61bd10d13b38ce576212ff00daf2ac0811fc6.tar.bz2 perlweeklychallenge-club-e7b61bd10d13b38ce576212ff00daf2ac0811fc6.zip | |
1st commit on 039
Diffstat (limited to 'challenge-039')
| -rw-r--r-- | challenge-039/stuart-little/README | 1 | ||||
| -rwxr-xr-x | challenge-039/stuart-little/raku/ch-1.p6 | 26 | ||||
| -rwxr-xr-x | challenge-039/stuart-little/raku/ch-2.p6 | 10 |
3 files changed, 37 insertions, 0 deletions
diff --git a/challenge-039/stuart-little/README b/challenge-039/stuart-little/README new file mode 100644 index 0000000000..78439907de --- /dev/null +++ b/challenge-039/stuart-little/README @@ -0,0 +1 @@ +Solutions by Stuart Little diff --git a/challenge-039/stuart-little/raku/ch-1.p6 b/challenge-039/stuart-little/raku/ch-1.p6 new file mode 100755 index 0000000000..403be8e1e2 --- /dev/null +++ b/challenge-039/stuart-little/raku/ch-1.p6 @@ -0,0 +1,26 @@ +#!/usr/bin/env perl6 +use v6; + +# run as <script> <path-to-file containing guest book> or just <script> to default to the guest book below + +sub extract_intervals(@record) { + @record.map({ $_ ~~ m:g/(\d ** 2 \: \d ** 2)/; $0.Str, $1.Str }).map({ $_.map( -> $time { ($time.split(':').map(*.Int) Z* (60,1)).sum }) }).map({ $_[0]..^$_[1] }) +} + +sub interval_union(@intervals) { + @intervals.reduce(&infix:<(+)>).Set +} + +my @record=((@*ARGS) ?? (@*ARGS[0].IO) !! ($=finish)).lines; +say @record.&extract_intervals.&interval_union.elems + +=finish +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 diff --git a/challenge-039/stuart-little/raku/ch-2.p6 b/challenge-039/stuart-little/raku/ch-2.p6 new file mode 100755 index 0000000000..6444a31134 --- /dev/null +++ b/challenge-039/stuart-little/raku/ch-2.p6 @@ -0,0 +1,10 @@ +#!/usr/bin/env perl6 +use v6; + +# run as <script> <RPN expression> + +sub prcs_stack(@stack,$token) { + ($token.Real) ?? (|@stack, $token) !! (|@stack[0..^*-2], @stack.[*-2..*-1].join($token).EVAL) +} + +say (reduce &prcs_stack, [], |@*ARGS) |
