aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-258/wambash/raku/ch-1.raku19
-rw-r--r--challenge-258/wambash/raku/ch-2.raku21
2 files changed, 40 insertions, 0 deletions
diff --git a/challenge-258/wambash/raku/ch-1.raku b/challenge-258/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..eab7c74298
--- /dev/null
+++ b/challenge-258/wambash/raku/ch-1.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+
+sub count-even-digits-number (+ints) {
+ ints
+ andthen .map: *.codes %% 2
+ andthen .sum
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is count-even-digits-number(10,1,111,24,1000),3;
+ is count-even-digits-number(111,1,11111),0;
+ is count-even-digits-number(2,8,1024,256),1;
+ done-testing;
+}
+
+multi MAIN (+ints) {
+ say count-even-digits-number ints
+}
diff --git a/challenge-258/wambash/raku/ch-2.raku b/challenge-258/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..5088190b7e
--- /dev/null
+++ b/challenge-258/wambash/raku/ch-2.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/env raku
+
+sub sum-of-values (+ints, :$k!) {
+ ints
+ andthen .pairs
+ andthen .grep: { .key.polymod(2 xx *).sum == $k }\
+ andthen .map: *.value
+ andthen .sum
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is sum-of-values(2,5,9,11,3):k(1),17;
+ is sum-of-values(2,5,9,11,3):k(2),11;
+ is sum-of-values(2,5,9,11,3):k(0), 2;
+ done-testing;
+}
+
+multi MAIN (+ints, Int :$k!) {
+ say sum-of-values ints, :$k
+}