diff options
| -rw-r--r-- | challenge-184/mark-anderson/raku/ch-1.raku | 13 | ||||
| -rw-r--r-- | challenge-184/mark-anderson/raku/ch-2.raku | 14 |
2 files changed, 27 insertions, 0 deletions
diff --git a/challenge-184/mark-anderson/raku/ch-1.raku b/challenge-184/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..437659af20 --- /dev/null +++ b/challenge-184/mark-anderson/raku/ch-1.raku @@ -0,0 +1,13 @@ +#!/usr/bin/env raku + +say seq-num(< ab1234 cd5678 ef1342 >); +say seq-num(< pq1122 rs3334 >); +say seq-num(< ab1234 cd5678 ef1342 pq1122 rs3334 + xy5529 zz9999 wx8822 hi4321 jr9876 + br5050 er7752 us3435 mn1029 cd9368 >); + +sub seq-num(+$list) +{ + my $n = '00'; + $list.map({ .subst(/^ <lower> ** 2 /, $n++) }) +} diff --git a/challenge-184/mark-anderson/raku/ch-2.raku b/challenge-184/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..bffc9bd33c --- /dev/null +++ b/challenge-184/mark-anderson/raku/ch-2.raku @@ -0,0 +1,14 @@ +#!/usr/bin/env raku + +say split-array('a 1 2 b 0', '3 c 4 d'); +say split-array('1 2', 'p q r', 's 3', '4 5 t'); + +sub split-array(+$list) +{ + my $loh := $list.map({ .comb(/\S/) + .classify({ /<lower>/ ?? 'letters' !! 'numbers' }) + }).cache; + + $loh.map({ .<numbers> if .<numbers> }), + $loh.map({ .<letters> if .<letters> }) +} |
