diff options
| -rw-r--r-- | challenge-091/wambash/raku/ch-1.raku | 20 | ||||
| -rw-r--r-- | challenge-091/wambash/raku/ch-2.raku | 23 |
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 +} |
