aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-228/wambash/raku/ch-1.raku21
-rw-r--r--challenge-228/wambash/raku/ch-2.raku23
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
+}