From 888181321995f300523fa36ccfab7afed5c4e49e Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Thu, 29 Apr 2021 23:26:18 +0200 Subject: solutions week 110 --- challenge-110/wambash/raku/ch-1.raku | 24 ++++++++++++++++++++++++ challenge-110/wambash/raku/ch-2.raku | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 challenge-110/wambash/raku/ch-1.raku create mode 100644 challenge-110/wambash/raku/ch-2.raku 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 { @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; +} -- cgit