aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark <53903062+andemark@users.noreply.github.com>2023-07-31 08:57:22 +0000
committerMark <53903062+andemark@users.noreply.github.com>2023-07-31 08:57:22 +0000
commitfc5cb8f9944974380ec4b67f29c2c717c5e93187 (patch)
tree4f40c5b8b32467f6c012f414e9e85712844f6378
parente511966ce2280dbedb2c916d9e6254708800639e (diff)
downloadperlweeklychallenge-club-fc5cb8f9944974380ec4b67f29c2c717c5e93187.tar.gz
perlweeklychallenge-club-fc5cb8f9944974380ec4b67f29c2c717c5e93187.tar.bz2
perlweeklychallenge-club-fc5cb8f9944974380ec4b67f29c2c717c5e93187.zip
Challenge 228 Solutions (Raku)
-rw-r--r--challenge-228/mark-anderson/raku/ch-1.raku12
-rw-r--r--challenge-228/mark-anderson/raku/ch-2.raku18
2 files changed, 30 insertions, 0 deletions
diff --git a/challenge-228/mark-anderson/raku/ch-1.raku b/challenge-228/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..4d961b6d77
--- /dev/null
+++ b/challenge-228/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,12 @@
+#!/usr/bin/env raku
+use Test;
+
+is unique-sum(<2 1 3 2>), 4;
+is unique-sum(<1 1 1 1>), 0;
+is unique-sum(<2 1 3 4>), 10;
+say unique-sum((^1000).roll(1000));
+
+sub unique-sum(*@a)
+{
+ sum do map {.key}, @a.Bag.grep(*.value == 1)
+}
diff --git a/challenge-228/mark-anderson/raku/ch-2.raku b/challenge-228/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..1c0abef944
--- /dev/null
+++ b/challenge-228/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,18 @@
+#!/usr/bin/env raku
+use Test;
+
+is empty-array(<3 4 2>), 5;
+is empty-array(<1 2 3>), 3;
+is empty-array(<16 17 8 15 13 11 19 5 12 6 20 2 4 10 3 14 1 7 9 18>), 127;
+say empty-array((^1000).pick(1000));
+
+sub empty-array(*@a)
+{
+ sum do while @a
+ {
+ my $v = @a.antipairs.min.value;
+ @a .= rotate($v);
+ @a.shift;
+ $v.succ
+ }
+}