aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2021-04-29 23:26:18 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2021-04-29 23:26:18 +0200
commit888181321995f300523fa36ccfab7afed5c4e49e (patch)
treee390fb142a6ff16ddb7d7e155c74cdc8da54cff2
parent103e4b8608791aba63b73d81dc07c06faf84283a (diff)
downloadperlweeklychallenge-club-888181321995f300523fa36ccfab7afed5c4e49e.tar.gz
perlweeklychallenge-club-888181321995f300523fa36ccfab7afed5c4e49e.tar.bz2
perlweeklychallenge-club-888181321995f300523fa36ccfab7afed5c4e49e.zip
solutions week 110
-rw-r--r--challenge-110/wambash/raku/ch-1.raku24
-rw-r--r--challenge-110/wambash/raku/ch-2.raku32
2 files changed, 56 insertions, 0 deletions
diff --git a/challenge-110/wambash/raku/ch-1.raku b/challenge-110/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..61c4ed8a8e
--- /dev/null
+++ b/challenge-110/wambash/raku/ch-1.raku
@@ -0,0 +1,24 @@
+#!/usr/bin/env raku
+
+my token valid-phone-number {
+ [
+ |\+\d\d
+ |\d**4
+ |\( ~ \) \d ** 2
+ ]
+ \s+
+ \d**10
+}
+
+multi MAIN () {
+ slurp()
+ andthen .comb: &valid-phone-number
+ andthen .map: *.say
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ like $_, &valid-phone-number, "$_ is valid number" for '0044 1148820341', '+44 1148820341', '(44) 1148820341';
+ unlike $_, &valid-phone-number, "$_ is not valid number" for '00 1148820341', '44-11-4882-0341';
+ done-testing;
+}
diff --git a/challenge-110/wambash/raku/ch-2.raku b/challenge-110/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..b508297362
--- /dev/null
+++ b/challenge-110/wambash/raku/ch-2.raku
@@ -0,0 +1,32 @@
+#!/usr/bin/env raku
+
+sub transpose-csv-lines (@lines) {
+ @lines
+ andthen .map: *.split: /\,/
+ andthen zip $_, with => sub (+@a) is assoc<list> { @a.join: ',' }\
+}
+
+multi MAIN () {
+ .put for transpose-csv-lines lines()
+}
+
+multi MAIN (:test($)!) {
+ use Test;
+ my @in-row =<
+ name,age,sex
+ Mohammad,45,m
+ Joe,20,m
+ Julie,35,f
+ Cristina,10,f
+ >;
+
+ my @in-column =<
+ name,Mohammad,Joe,Julie,Cristina
+ age,45,20,35,10
+ sex,m,m,f,f
+ >;
+
+ is transpose-csv-lines(@in-row), @in-column;
+ is transpose-csv-lines(@in-column), @in-row;
+ done-testing;
+}