diff options
| -rw-r--r-- | challenge-228/wambash/raku/ch-1.raku | 21 | ||||
| -rw-r--r-- | challenge-228/wambash/raku/ch-2.raku | 23 |
2 files changed, 44 insertions, 0 deletions
diff --git a/challenge-228/wambash/raku/ch-1.raku b/challenge-228/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..c1afad13c5 --- /dev/null +++ b/challenge-228/wambash/raku/ch-1.raku @@ -0,0 +1,21 @@ + #!/usr/bin/env raku + +sub unique-sum (+int) { + int + andthen .Bag + andthen .nodemap: * == 1 + andthen .keys + andthen .sum +} + +multi MAIN (Bool :test($)!) { + 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; + done-testing; +} + +multi MAIN (+int) { + say unique-sum int +} diff --git a/challenge-228/wambash/raku/ch-2.raku b/challenge-228/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..4c594ce9a6 --- /dev/null +++ b/challenge-228/wambash/raku/ch-2.raku @@ -0,0 +1,23 @@ +#!/usr/bin/env raku + +sub skip-or-rotate (@a) { + @a.head == @a.min ?? @a.skip !! @a.rotate +} + +sub empty-array (+int) { + elems int, &skip-or-rotate ...^ :!elems + +} + +multi MAIN (Bool :test($)!) { + use Test; + is skip-or-rotate((3,4,2)), (4,2,3); + is skip-or-rotate((1,2,3)), (2,3); + is empty-array(3,4,2), 5; + is empty-array(1,2,3), 3; + done-testing; +} + +multi MAIN (+int) { + say empty-array int +} |
