From 5087729bf5a4afd5389940b164e935b2e74cb28f Mon Sep 17 00:00:00 2001 From: Mark <53903062+andemark@users.noreply.github.com> Date: Mon, 3 Oct 2022 07:42:07 +0000 Subject: Challenge 185 Solutions --- challenge-185/mark-anderson/raku/ch-1.raku | 17 +++++++++++++++++ challenge-185/mark-anderson/raku/ch-2.raku | 10 ++++++++++ 2 files changed, 27 insertions(+) create mode 100644 challenge-185/mark-anderson/raku/ch-1.raku create mode 100644 challenge-185/mark-anderson/raku/ch-2.raku 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/(..) /$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(//, 'x', :x(4)) }, @list +} -- cgit