aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-091/wambash/raku/ch-1.raku20
-rw-r--r--challenge-091/wambash/raku/ch-2.raku23
2 files changed, 43 insertions, 0 deletions
diff --git a/challenge-091/wambash/raku/ch-1.raku b/challenge-091/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..3694f342fc
--- /dev/null
+++ b/challenge-091/wambash/raku/ch-1.raku
@@ -0,0 +1,20 @@
+#!/usr/bin/env raku
+
+sub count-numbers (UInt $n) {
+ $n
+ andthen m:g/$<num>=[\d] $<num>*/
+ andthen .map: {.chars ~ .<num>}\
+ andthen .join
+}
+
+multi MAIN (UInt $n ) {
+ say count-numbers $n
+}
+
+multi MAIN (Bool :$test!) {
+ use Test;
+ is count-numbers(1122234), 21321314;
+ is count-numbers(2333445), 12332415;
+ is count-numbers(12345) , 1112131415;
+ done-testing;
+}
diff --git a/challenge-091/wambash/raku/ch-2.raku b/challenge-091/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..fb216d0192
--- /dev/null
+++ b/challenge-091/wambash/raku/ch-2.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+
+subset Steps of Int;
+
+sub jump-game(+@n --> Steps) {
+ my $end = @n.end;
+ my @jump-to = ^∞ Z+ @n;
+
+ 0, { @jump-to[$^a] // $^a } ... * == *
+ andthen .first: * == $end, :k
+}
+
+multi MAIN (Bool :$test!) {
+ use Test;
+ is jump-game(1,2,1,2), 2;
+ is jump-game(2,1,1,0,2), Nil;
+ is jump-game(2,0,3,0,0,1,0), 3;
+ done-testing;
+}
+
+multi MAIN (*@n) {
+ say +so jump-game @n
+}