diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2021-02-12 19:11:39 +0100 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2021-02-12 19:11:39 +0100 |
| commit | 00d240f6aa3014af91349f023d5e1235ba88e184 (patch) | |
| tree | 6fffb6f8069bff76ff8f047b3034da078e8cae0a | |
| parent | fc7b7ef385b18f9fd5a4949bc8378d74d75edb39 (diff) | |
| download | perlweeklychallenge-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.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, +} |
