aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark A <andemark@a-iot1t.uch.ad.pvt>2021-08-23 01:58:46 -0600
committerMark A <andemark@a-iot1t.uch.ad.pvt>2021-08-23 01:58:46 -0600
commit44ee35a6797939c49e15a90df76b81d891913771 (patch)
tree36825d84ce3107ed74643230c6ce621c89af0480
parentdf35ff0ae1f97a768f4365ac33aebffc0d331a6d (diff)
downloadperlweeklychallenge-club-44ee35a6797939c49e15a90df76b81d891913771.tar.gz
perlweeklychallenge-club-44ee35a6797939c49e15a90df76b81d891913771.tar.bz2
perlweeklychallenge-club-44ee35a6797939c49e15a90df76b81d891913771.zip
Challenge 127 (Raku)
-rw-r--r--challenge-127/mark-anderson/raku/ch-1.raku12
-rw-r--r--challenge-127/mark-anderson/raku/ch-2.raku24
2 files changed, 36 insertions, 0 deletions
diff --git a/challenge-127/mark-anderson/raku/ch-1.raku b/challenge-127/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..fd6d14ef5a
--- /dev/null
+++ b/challenge-127/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,12 @@
+#!/usr/bin/env raku
+
+use Test;
+plan 2;
+
+is disjoint((1, 2, 5, 3, 4), (4, 6, 7, 8, 9)), 0;
+is disjoint((1, 3, 5, 7, 9), (0, 2, 4, 6, 8)), 1;
+
+sub disjoint($s1, $s2)
+{
+ + not $s1 (&) $s2;
+}
diff --git a/challenge-127/mark-anderson/raku/ch-2.raku b/challenge-127/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..e65be7ec08
--- /dev/null
+++ b/challenge-127/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,24 @@
+#!/usr/bin/env raku
+
+use Test;
+plan 2;
+
+is-deeply conflict-intervals((1,4), (3,5), (6,8), (12, 13), (3,20)), [(3,5), (3,20)];
+
+is-deeply conflict-intervals((3,4), (5,7), (6,9), (10, 12), (13,15)), [(6,9),];
+
+sub conflict-intervals(**@intervals)
+{
+ gather
+ {
+ while @intervals > 1
+ {
+ if @intervals[1].head < @intervals[0].tail
+ {
+ take @intervals[1];
+ }
+
+ @intervals.shift;
+ }
+ }.Array;
+}