diff options
| -rw-r--r-- | challenge-193/wambash/raku/ch-1.raku | 16 | ||||
| -rw-r--r-- | challenge-193/wambash/raku/ch-2.raku | 29 |
2 files changed, 45 insertions, 0 deletions
diff --git a/challenge-193/wambash/raku/ch-1.raku b/challenge-193/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..17beba4fd1 --- /dev/null +++ b/challenge-193/wambash/raku/ch-1.raku @@ -0,0 +1,16 @@ +#!/usr/bin/env raku + +sub binary-string ($n) { + [X~] ^2 xx $n +} + +multi MAIN (Bool :test($)!) { + use Test; + is binary-string(2), <00 01 10 11>; + is binary-string(3), <000 001 010 011 100 101 110 111>; + done-testing; +} + +multi MAIN ($n) { + .put for binary-string $n +} diff --git a/challenge-193/wambash/raku/ch-2.raku b/challenge-193/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..aeb3e2e364 --- /dev/null +++ b/challenge-193/wambash/raku/ch-2.raku @@ -0,0 +1,29 @@ +#!/usr/bin/env raku + +sub difference-array ($s) { + $s + andthen .comb + andthen .map: &ord + andthen .cache + andthen .skip Z- $_ + andthen .Capture +} + +sub odd-string (+@s) { + @s + andthen .classify: &difference-array + andthen .values + andthen .grep: *.elems == 1 +} + +multi MAIN (Bool :test($)!) { + use Test; + is difference-array('wzy'), \(3,-1); + is odd-string(<adc wzy abc>),'abc'; + is odd-string('aaa', 'bob', 'ccc', 'ddd'), 'bob'; + done-testing; +} + +multi MAIN (*@s) { + put odd-string @s +} |
