diff options
| -rw-r--r-- | challenge-099/mark-anderson/raku/ch-1.raku | 13 | ||||
| -rw-r--r-- | challenge-099/mark-anderson/raku/ch-2.raku | 11 |
2 files changed, 24 insertions, 0 deletions
diff --git a/challenge-099/mark-anderson/raku/ch-1.raku b/challenge-099/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..84ea24421b --- /dev/null +++ b/challenge-099/mark-anderson/raku/ch-1.raku @@ -0,0 +1,13 @@ +#!/usr/bin/env raku +use Test; +plan 4; + +is pattern-match("abcde", "a*e"), 1; +is pattern-match("abcde", "a*d"), 0; +is pattern-match("abcde", "?b*d"), 0; +is pattern-match("abcde", "a*c?e"), 1; + +sub pattern-match($S, $P) +{ + ($S ~~ / ^ <{ $P.trans: <? *> => <. .*> }> $ /).Bool.UInt; +} diff --git a/challenge-099/mark-anderson/raku/ch-2.raku b/challenge-099/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..88bf596ded --- /dev/null +++ b/challenge-099/mark-anderson/raku/ch-2.raku @@ -0,0 +1,11 @@ +#!/usr/bin/env raku +use Test; +plan 2; + +is unique-subsequences("littleit", "lit"), 5; +is unique-subsequences("london", "lon"), 3; + +sub unique-subsequences($S, $T) +{ + +($S ~~ m:ex/ <{ $T.comb.join(" .* ") }> /); +} |
