diff options
| -rw-r--r-- | challenge-163/mark-anderson/raku/ch-1.raku | 15 | ||||
| -rw-r--r-- | challenge-163/mark-anderson/raku/ch-2.raku | 13 |
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 +} |
