aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-099/wambash/raku/ch-1.raku19
-rw-r--r--challenge-099/wambash/raku/ch-2.raku17
2 files changed, 36 insertions, 0 deletions
diff --git a/challenge-099/wambash/raku/ch-1.raku b/challenge-099/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..46fb53a006
--- /dev/null
+++ b/challenge-099/wambash/raku/ch-1.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+
+sub pattern-match ( $s, $p ) {
+ my $re = $p.trans: < * ? > => < .* . >;
+ $s.match: / ^ <$re> $ /
+}
+
+multi MAIN (Bool :$test!) {
+ use Test;
+ ok pattern-match('abcde', 'a*e');
+ nok pattern-match('abcde', 'a*d');
+ nok pattern-match('abcde', '?b*d');
+ ok pattern-match('abcde', 'a*c?e');
+ done-testing;
+}
+
+multi MAIN ($s, $p) {
+ say +so pattern-match $s, $p
+}
diff --git a/challenge-099/wambash/raku/ch-2.raku b/challenge-099/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..2b554b28fe
--- /dev/null
+++ b/challenge-099/wambash/raku/ch-2.raku
@@ -0,0 +1,17 @@
+#!/usr/bin/env raku
+
+sub unique-subsequence ( $s, $t ) {
+ my $re = $t.comb.join: '.*';
+ $s.match: /<$re>/,:ex
+}
+
+multi MAIN (Bool :$test!) {
+ use Test;
+ is unique-subsequence('littleit', 'lit').Int,5;
+ is unique-subsequence('london', 'lon').Int, 3;
+ done-testing;
+}
+
+multi MAIN ($s, $t) {
+ say +unique-subsequence $s, $t,
+}