From 2c6b15788d82638630f392993b4f6fc1410bc1fd Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sat, 3 Dec 2022 20:54:23 +0100 Subject: solutions week 193 --- challenge-193/wambash/raku/ch-1.raku | 16 ++++++++++++++++ challenge-193/wambash/raku/ch-2.raku | 29 +++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 challenge-193/wambash/raku/ch-1.raku create mode 100644 challenge-193/wambash/raku/ch-2.raku 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(),'abc'; + is odd-string('aaa', 'bob', 'ccc', 'ddd'), 'bob'; + done-testing; +} + +multi MAIN (*@s) { + put odd-string @s +} -- cgit