aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-163/mark-anderson/raku/ch-1.raku15
-rw-r--r--challenge-163/mark-anderson/raku/ch-2.raku13
2 files changed, 28 insertions, 0 deletions
diff --git a/challenge-163/mark-anderson/raku/ch-1.raku b/challenge-163/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..047bbc50a5
--- /dev/null
+++ b/challenge-163/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,15 @@
+#!/usr/bin/env raku
+
+use Test;
+
+is bitwise-sum(1, 2, 3), 3;
+is bitwise-sum(2, 3, 4), 2;
+
+# This is how I'm interpreting 'unique pairs'
+# ((2 & 2) + (2 & 3) + (2 & 4) + (3 & 3) + (3 & 4) + (4 & 4)) == 11
+is bitwise-sum(2, 2, 2, 3, 3, 3, 4, 4, 4), 11;
+
+sub bitwise-sum(+@n)
+{
+ @n.combinations(2).unique(:with(&[eqv])).map({.head +& .tail}).sum
+}
diff --git a/challenge-163/mark-anderson/raku/ch-2.raku b/challenge-163/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..bf22fe3e01
--- /dev/null
+++ b/challenge-163/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,13 @@
+#!/usr/bin/env raku
+
+use Test;
+
+is summations(1, 2, 3, 4, 5), 42;
+is summations(1, 3, 5, 7, 9), 70;
+is summations(1 .. 20) , 6564120420;
+
+sub summations(+@n)
+{
+ @n = [\+] @n.skip while @n > 1;
+ @n
+}