aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2021-02-12 19:11:39 +0100
committerJan Krňávek <Jan.Krnavek@gmail.com>2021-02-12 19:11:39 +0100
commit00d240f6aa3014af91349f023d5e1235ba88e184 (patch)
tree6fffb6f8069bff76ff8f047b3034da078e8cae0a
parentfc7b7ef385b18f9fd5a4949bc8378d74d75edb39 (diff)
downloadperlweeklychallenge-club-00d240f6aa3014af91349f023d5e1235ba88e184.tar.gz
perlweeklychallenge-club-00d240f6aa3014af91349f023d5e1235ba88e184.tar.bz2
perlweeklychallenge-club-00d240f6aa3014af91349f023d5e1235ba88e184.zip
solutions week 099
-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,
+}