diff options
| author | Mark <53903062+andemark@users.noreply.github.com> | 2023-07-31 08:57:22 +0000 |
|---|---|---|
| committer | Mark <53903062+andemark@users.noreply.github.com> | 2023-07-31 08:57:22 +0000 |
| commit | fc5cb8f9944974380ec4b67f29c2c717c5e93187 (patch) | |
| tree | 4f40c5b8b32467f6c012f414e9e85712844f6378 | |
| parent | e511966ce2280dbedb2c916d9e6254708800639e (diff) | |
| download | perlweeklychallenge-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.raku | 12 | ||||
| -rw-r--r-- | challenge-228/mark-anderson/raku/ch-2.raku | 18 |
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 + } +} |
