aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark <53903062+andemark@users.noreply.github.com>2022-10-03 07:42:07 +0000
committerMark <53903062+andemark@users.noreply.github.com>2022-10-03 07:42:07 +0000
commit5087729bf5a4afd5389940b164e935b2e74cb28f (patch)
tree636af0409da92eb40fc9d0951c79a392f1e66776
parente23f39fb80db32b6e802106e4b5d3421e15fb308 (diff)
downloadperlweeklychallenge-club-5087729bf5a4afd5389940b164e935b2e74cb28f.tar.gz
perlweeklychallenge-club-5087729bf5a4afd5389940b164e935b2e74cb28f.tar.bz2
perlweeklychallenge-club-5087729bf5a4afd5389940b164e935b2e74cb28f.zip
Challenge 185 Solutions
-rw-r--r--challenge-185/mark-anderson/raku/ch-1.raku17
-rw-r--r--challenge-185/mark-anderson/raku/ch-2.raku10
2 files changed, 27 insertions, 0 deletions
diff --git a/challenge-185/mark-anderson/raku/ch-1.raku b/challenge-185/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..49b1472aa5
--- /dev/null
+++ b/challenge-185/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,17 @@
+#!/usr/bin/env raku
+use Test;
+
+is mac-address('1ac2.34f0.b1c2'), '1a:c2:34:f0:b1:c2';
+is mac-address('abc1.20f1.345a'), 'ab:c1:20:f1:34:5a';
+
+subset Mac of Str where /^ [ <[0..9a..f]> ** 4 ] ** 3 % '.' $/;
+
+sub mac-address(Mac $mac is copy)
+{
+ given $mac
+ {
+ s:g/\.//;
+ s:g/(..) <?before ..>/$0:/;
+ .return
+ }
+}
diff --git a/challenge-185/mark-anderson/raku/ch-2.raku b/challenge-185/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..7bb46da0df
--- /dev/null
+++ b/challenge-185/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,10 @@
+#!/usr/bin/env raku
+use Test;
+
+is-deeply mask-code('ab-cde-123', '123.abc.420', '3abc-0010.xy'), ('xx-xxe-123', 'xxx.xbc.420', 'xxxx-0010.xy');
+is-deeply mask-code('1234567.a', 'a-1234-bc', 'a.b.c.d.e.f'), ('xxxx567.a', 'x-xxx4-bc', 'x.x.x.x.e.f');
+
+sub mask-code(+@list)
+{
+ map { .subst(/<alnum>/, 'x', :x(4)) }, @list
+}