diff options
| -rw-r--r-- | challenge-275/wambash/raku/ch-1.raku | 21 | ||||
| -rw-r--r-- | challenge-275/wambash/raku/ch-2.raku | 22 |
2 files changed, 43 insertions, 0 deletions
diff --git a/challenge-275/wambash/raku/ch-1.raku b/challenge-275/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..35d52992f2 --- /dev/null +++ b/challenge-275/wambash/raku/ch-1.raku @@ -0,0 +1,21 @@ +#!/usr/bin/env raku + +sub broken-keys ($sentence,+@keys) { + $sentence + andthen .words + andthen .grep: { .fc.contains: none @keys».fc }\ + andthen .elems +} + +multi MAIN (Bool :test($)!) { + use Test; + is broken-keys('Perl Weekly Challenge', <l a>), 0; + is broken-keys('Perl and Raku', <a>), 1; + is broken-keys('Well done Team PWC', <l o>), 2; + is broken-keys('The joys of polyglottism', <T>), 2; + done-testing; +} + +multi MAIN ($sentence,+@keys) { + say broken-keys $sentence, @keys +} diff --git a/challenge-275/wambash/raku/ch-2.raku b/challenge-275/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..44557c32fe --- /dev/null +++ b/challenge-275/wambash/raku/ch-2.raku @@ -0,0 +1,22 @@ +#!/usr/bin/env raku + +sub replace-digits ($str) { + $str.subst( + / $<letter>=\w <( $<shifts>=(\d)+ /, + { chrs .<shifts>.map: -> \x { x + .<letter>.ord } }, + :g + ) +} + +multi MAIN (Bool :test($)!) { + use Test; + is replace-digits('a1c1e1'), 'abcdef'; + is replace-digits('a1b2c3d4'), 'abbdcfdh'; + is replace-digits('b2b'), 'bdb'; + is replace-digits('a16z'), 'abgz'; + done-testing; +} + +multi MAIN ($str) { + say replace-digits $str +} |
