aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-262/wambash/raku/ch-1.raku20
-rw-r--r--challenge-262/wambash/raku/ch-2.raku22
2 files changed, 42 insertions, 0 deletions
diff --git a/challenge-262/wambash/raku/ch-1.raku b/challenge-262/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..da37b4ebe4
--- /dev/null
+++ b/challenge-262/wambash/raku/ch-1.raku
@@ -0,0 +1,20 @@
+#!/usr/bin/env raku
+
+sub max-positive-negative (+ints) {
+ ints
+ andthen .classify: *.sign
+ andthen .nodemap: *.elems
+ andthen .{-1,1}.max
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is max-positive-negative(-3,1,2,-1,3,-2,4),4;
+ is max-positive-negative(-1, -2, -3, 1), 3;
+ is max-positive-negative(1,2), 2;
+ done-testing;
+}
+
+multi MAIN (+ints) {
+ say max-positive-negative ints
+}
diff --git a/challenge-262/wambash/raku/ch-2.raku b/challenge-262/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..d3f20cc3b7
--- /dev/null
+++ b/challenge-262/wambash/raku/ch-2.raku
@@ -0,0 +1,22 @@
+#!/usr/bin/env raku
+
+sub count-equal-divisible (+ints,:$k) {
+ ints
+ andthen .pairs
+ andthen .classify: *.value, as => *.key
+ andthen .values
+ andthen .map: |*.combinations(2).map: -> (\x,\y) {x * y}\
+ andthen .grep: { $_ %% $k }\
+ andthen .elems
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is count-equal-divisible(3,1,2,2,2,1,3):2k,4;
+ is count-equal-divisible(1,2,3):1k,0;
+ done-testing;
+}
+
+multi MAIN (+ints,Int :$k) {
+ say count-equal-divisible ints,:$k
+}