diff options
| -rw-r--r-- | challenge-099/wambash/raku/ch-1.raku | 19 | ||||
| -rw-r--r-- | challenge-099/wambash/raku/ch-2.raku | 17 |
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, +} |
