From 2016d09aa3df8402bbe1ab65c6cfef924f3df2b3 Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sun, 2 Oct 2022 12:30:24 +0200 Subject: solutions week 184 --- challenge-184/wambash/raku/ch-1.raku | 18 ++++++++++++++++++ challenge-184/wambash/raku/ch-2.raku | 26 ++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 challenge-184/wambash/raku/ch-1.raku create mode 100644 challenge-184/wambash/raku/ch-2.raku diff --git a/challenge-184/wambash/raku/ch-1.raku b/challenge-184/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..d6d06adf01 --- /dev/null +++ b/challenge-184/wambash/raku/ch-1.raku @@ -0,0 +1,18 @@ +#!/usr/bin/env raku + +sub sequence-number (+@list) { + @list.map: { + .subst: rx/^<:L> ** 2/, ($++).fmt: "%02d" + } +} + +multi MAIN (Bool :test($)!) { + use Test; + is sequence-number('ab1234', 'cd5678', 'ef1342'),('001234', '015678', '021342'); + is sequence-number('pq1122', 'rs3334'),('001122', '013334'); + done-testing; +} + +multi MAIN (+@list) { + put sequence-number @list +} diff --git a/challenge-184/wambash/raku/ch-2.raku b/challenge-184/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..dc9e2dca2b --- /dev/null +++ b/challenge-184/wambash/raku/ch-2.raku @@ -0,0 +1,26 @@ +#!/usr/bin/env raku + +multi split-array (Str $s) { + $s + andthen .words + andthen .classify: *.uniprop +} + +multi split-array (+@s) { + @s + andthen .map: { split-array $_ }\ + andthen .flat + andthen .classify: *.key, as => *.value +} +multi MAIN (Bool :test($)!) { + use Test; + is-deeply split-array('a 1 2 b 0'),( ['a', 'b'], ['1', '2', '0']); + is-deeply split-array('3 c 4 d'),( ['c', 'd'], ['3', '4']); + is-deeply split-array('a 1 2 b 0','3 c 4 d'),( [['a', 'b'],['c','d']], [['1', '2', '0'],['3','4']]); + is-deeply split-array('1 2', 'p q r', 's 3', '4 5 t'),( [['1', '2'],['3',],['4','5']], [['p', 'q', 'r'],['s'],['t']]); + done-testing; +} + +multi MAIN (*@s) { + say split-array @s +} -- cgit