diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2022-10-02 12:30:24 +0200 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2022-10-02 12:30:24 +0200 |
| commit | 2016d09aa3df8402bbe1ab65c6cfef924f3df2b3 (patch) | |
| tree | aa593df2290b94baf0493afaa3b8e26c0479f1a7 | |
| parent | feec48f758f190dd2cd43ba5c075bb08ccd4ae50 (diff) | |
| download | perlweeklychallenge-club-2016d09aa3df8402bbe1ab65c6cfef924f3df2b3.tar.gz perlweeklychallenge-club-2016d09aa3df8402bbe1ab65c6cfef924f3df2b3.tar.bz2 perlweeklychallenge-club-2016d09aa3df8402bbe1ab65c6cfef924f3df2b3.zip | |
solutions week 184
| -rw-r--r-- | challenge-184/wambash/raku/ch-1.raku | 18 | ||||
| -rw-r--r-- | challenge-184/wambash/raku/ch-2.raku | 26 |
2 files changed, 44 insertions, 0 deletions
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')<Ll Nd>,( ['a', 'b'], ['1', '2', '0']); + is-deeply split-array('3 c 4 d')<Ll Nd>,( ['c', 'd'], ['3', '4']); + is-deeply split-array('a 1 2 b 0','3 c 4 d')<Ll Nd>,( [['a', 'b'],['c','d']], [['1', '2', '0'],['3','4']]); + is-deeply split-array('1 2', 'p q r', 's 3', '4 5 t')<Nd Ll>,( [['1', '2'],['3',],['4','5']], [['p', 'q', 'r'],['s'],['t']]); + done-testing; +} + +multi MAIN (*@s) { + say split-array @s +} |
