From 41e95424b444033b982d3f94eb08959365c77113 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Mon, 8 Feb 2021 16:08:24 -0700 Subject: Challenge 99 Solutions (Raku) --- challenge-099/mark-anderson/raku/ch-1.raku | 15 +++++++++++++++ challenge-099/mark-anderson/raku/ch-2.raku | 11 +++++++++++ 2 files changed, 26 insertions(+) create mode 100644 challenge-099/mark-anderson/raku/ch-1.raku create mode 100644 challenge-099/mark-anderson/raku/ch-2.raku (limited to 'challenge-099') 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..9bd7d0c63e --- /dev/null +++ b/challenge-099/mark-anderson/raku/ch-1.raku @@ -0,0 +1,15 @@ +#!/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 is copy) +{ + $P ~~ s:g/ \? / . /; + $P ~~ s:g/ \* / .* /; + so $S ~~ / ^ <$P> $ / andthen .Int; +} 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..f1ace13893 --- /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-subsequence("littleit", "lit"), 5; +is unique-subsequence("london", "lon"), 3; + +sub unique-subsequence($S, $T) +{ + +($S ~~ m:ex/<{ $T.comb.join(" .* ") }>/); +} -- cgit From c7396711c480ba2efa859ef6095fe15907bb2742 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Mon, 8 Feb 2021 23:33:50 -0700 Subject: Challenge 99 Solutions (Raku) --- challenge-099/mark-anderson/raku/ch-1.raku | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'challenge-099') diff --git a/challenge-099/mark-anderson/raku/ch-1.raku b/challenge-099/mark-anderson/raku/ch-1.raku index 9bd7d0c63e..4d8687f9da 100644 --- a/challenge-099/mark-anderson/raku/ch-1.raku +++ b/challenge-099/mark-anderson/raku/ch-1.raku @@ -9,7 +9,6 @@ is pattern-match("abcde", "a*c?e"), 1; sub pattern-match($S, $P is copy) { - $P ~~ s:g/ \? / . /; - $P ~~ s:g/ \* / .* /; + $P .= trans: ["?", "*"] => [".", ".*"]; so $S ~~ / ^ <$P> $ / andthen .Int; } -- cgit From 6cc073b77bf35e6cd268b8f99b3c3b9a89ca8b60 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Mon, 8 Feb 2021 23:39:07 -0700 Subject: Challenge 99 Solutions (Raku) --- challenge-099/mark-anderson/raku/ch-2.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'challenge-099') diff --git a/challenge-099/mark-anderson/raku/ch-2.raku b/challenge-099/mark-anderson/raku/ch-2.raku index f1ace13893..71c1285506 100644 --- a/challenge-099/mark-anderson/raku/ch-2.raku +++ b/challenge-099/mark-anderson/raku/ch-2.raku @@ -7,5 +7,5 @@ is unique-subsequence("london", "lon"), 3; sub unique-subsequence($S, $T) { - +($S ~~ m:ex/<{ $T.comb.join(" .* ") }>/); + +($S ~~ m:ex/ <{ $T.comb.join(" .* ") }> /); } -- cgit From 6946490cca746d4d684e7c8b281339513ef1895a Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Mon, 8 Feb 2021 23:46:15 -0700 Subject: Challenge 99 Solutions (Raku) --- challenge-099/mark-anderson/raku/ch-1.raku | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'challenge-099') diff --git a/challenge-099/mark-anderson/raku/ch-1.raku b/challenge-099/mark-anderson/raku/ch-1.raku index 4d8687f9da..8f580eac2f 100644 --- a/challenge-099/mark-anderson/raku/ch-1.raku +++ b/challenge-099/mark-anderson/raku/ch-1.raku @@ -9,6 +9,5 @@ is pattern-match("abcde", "a*c?e"), 1; sub pattern-match($S, $P is copy) { - $P .= trans: ["?", "*"] => [".", ".*"]; - so $S ~~ / ^ <$P> $ / andthen .Int; + so $S ~~ / ^ <{ $P.trans: ["?", "*"] => [".", ".*"] }> $ / andthen .Int; } -- cgit From 8a0eaca7a83531d6888d77f88bb8c44ef7daeaaf Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Mon, 8 Feb 2021 23:50:30 -0700 Subject: Challenge 99 Solutions (Raku) --- challenge-099/mark-anderson/raku/ch-1.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'challenge-099') diff --git a/challenge-099/mark-anderson/raku/ch-1.raku b/challenge-099/mark-anderson/raku/ch-1.raku index 8f580eac2f..68e0a24095 100644 --- a/challenge-099/mark-anderson/raku/ch-1.raku +++ b/challenge-099/mark-anderson/raku/ch-1.raku @@ -9,5 +9,5 @@ is pattern-match("abcde", "a*c?e"), 1; sub pattern-match($S, $P is copy) { - so $S ~~ / ^ <{ $P.trans: ["?", "*"] => [".", ".*"] }> $ / andthen .Int; + ($S ~~ / ^ <{ $P.trans: ["?", "*"] => [".", ".*"] }> $ /).Bool.UInt; } -- cgit From b1b9f6dd83a4f7eaf1e9725c60c4a38fe124adf7 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Tue, 9 Feb 2021 00:01:23 -0700 Subject: Challenge 99 Solutions (Raku) --- challenge-099/mark-anderson/raku/ch-1.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'challenge-099') diff --git a/challenge-099/mark-anderson/raku/ch-1.raku b/challenge-099/mark-anderson/raku/ch-1.raku index 68e0a24095..f3ea085ab2 100644 --- a/challenge-099/mark-anderson/raku/ch-1.raku +++ b/challenge-099/mark-anderson/raku/ch-1.raku @@ -7,7 +7,7 @@ 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 is copy) +sub pattern-match($S, $P) { ($S ~~ / ^ <{ $P.trans: ["?", "*"] => [".", ".*"] }> $ /).Bool.UInt; } -- cgit From e09f00d1083cd0ff984721f5687e614866b5d5e7 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Tue, 9 Feb 2021 00:05:40 -0700 Subject: Challenge 99 Solutions (Raku) --- challenge-099/mark-anderson/raku/ch-1.raku | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'challenge-099') diff --git a/challenge-099/mark-anderson/raku/ch-1.raku b/challenge-099/mark-anderson/raku/ch-1.raku index f3ea085ab2..84ea24421b 100644 --- a/challenge-099/mark-anderson/raku/ch-1.raku +++ b/challenge-099/mark-anderson/raku/ch-1.raku @@ -9,5 +9,5 @@ is pattern-match("abcde", "a*c?e"), 1; sub pattern-match($S, $P) { - ($S ~~ / ^ <{ $P.trans: ["?", "*"] => [".", ".*"] }> $ /).Bool.UInt; + ($S ~~ / ^ <{ $P.trans: => <. .*> }> $ /).Bool.UInt; } -- cgit From d54a1c6e895251e2b45370dd448802c40288f453 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Tue, 9 Feb 2021 00:09:23 -0700 Subject: Challenge 99 Solutions (Raku) --- challenge-099/mark-anderson/raku/ch-2.raku | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'challenge-099') diff --git a/challenge-099/mark-anderson/raku/ch-2.raku b/challenge-099/mark-anderson/raku/ch-2.raku index 71c1285506..88bf596ded 100644 --- a/challenge-099/mark-anderson/raku/ch-2.raku +++ b/challenge-099/mark-anderson/raku/ch-2.raku @@ -2,10 +2,10 @@ use Test; plan 2; -is unique-subsequence("littleit", "lit"), 5; -is unique-subsequence("london", "lon"), 3; +is unique-subsequences("littleit", "lit"), 5; +is unique-subsequences("london", "lon"), 3; -sub unique-subsequence($S, $T) +sub unique-subsequences($S, $T) { +($S ~~ m:ex/ <{ $T.comb.join(" .* ") }> /); } -- cgit