aboutsummaryrefslogtreecommitdiff
path: root/challenge-039
diff options
context:
space:
mode:
authorchirvasitua <stuart-little@users.noreply.github.com>2020-12-10 21:59:06 -0500
committerchirvasitua <stuart-little@users.noreply.github.com>2020-12-10 21:59:06 -0500
commite7b61bd10d13b38ce576212ff00daf2ac0811fc6 (patch)
treecf864c2c2ba2f80cd2735f18aabfd9c635679f93 /challenge-039
parent931e28a9fe63ad0942cf9f3099191a0e21a978c2 (diff)
downloadperlweeklychallenge-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/README1
-rwxr-xr-xchallenge-039/stuart-little/raku/ch-1.p626
-rwxr-xr-xchallenge-039/stuart-little/raku/ch-2.p610
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)