aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2022-10-02 12:30:24 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2022-10-02 12:30:24 +0200
commit2016d09aa3df8402bbe1ab65c6cfef924f3df2b3 (patch)
treeaa593df2290b94baf0493afaa3b8e26c0479f1a7
parentfeec48f758f190dd2cd43ba5c075bb08ccd4ae50 (diff)
downloadperlweeklychallenge-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.raku18
-rw-r--r--challenge-184/wambash/raku/ch-2.raku26
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
+}