aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-110/feng-chang/raku/ch-1.raku16
-rwxr-xr-xchallenge-110/feng-chang/raku/ch-2.raku8
-rw-r--r--challenge-110/feng-chang/raku/ch-2.txt5
3 files changed, 29 insertions, 0 deletions
diff --git a/challenge-110/feng-chang/raku/ch-1.raku b/challenge-110/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..7e6f7bd5cc
--- /dev/null
+++ b/challenge-110/feng-chang/raku/ch-1.raku
@@ -0,0 +1,16 @@
+#!/bin/env raku
+
+grammar Phone-Number {
+ regex TOP { <prefix> \s+ <local> }
+ token prefix { '+'\d\d || '('\d\d')' || \d\d\d\d }
+ token local { \d ** 10 }
+}
+
+my @numbers =
+ '0044 1148820341',
+ '+44 1148820341',
+ '44-11-4882-0341',
+ '(44) 1148820341',
+ '00 1148820341';
+
+.put if Phone-Number.parse($_) for @numbers;
diff --git a/challenge-110/feng-chang/raku/ch-2.raku b/challenge-110/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..78a5c3dfb3
--- /dev/null
+++ b/challenge-110/feng-chang/raku/ch-2.raku
@@ -0,0 +1,8 @@
+#!/bin/env raku
+
+sub MAIN(Str:D $f where *.IO.e = 'ch-2.txt') {
+ my @a = $f.IO.linesĀ».split(',');
+ for ^@a[0].elems -> $i {
+ put @a.map(*[$i]).join(',');
+ }
+}
diff --git a/challenge-110/feng-chang/raku/ch-2.txt b/challenge-110/feng-chang/raku/ch-2.txt
new file mode 100644
index 0000000000..716ebdce75
--- /dev/null
+++ b/challenge-110/feng-chang/raku/ch-2.txt
@@ -0,0 +1,5 @@
+name,age,sex
+Mohammad,45,m
+Joe,20,m
+Julie,35,f
+Cristina,10,f