diff options
| author | Markus "Holli" Holzer <holli.holzer@gmail.com> | 2020-03-23 19:17:50 +0100 |
|---|---|---|
| committer | Markus "Holli" Holzer <holli.holzer@gmail.com> | 2020-03-23 19:17:50 +0100 |
| commit | 58191863fa68c268ca2a4d579abd52f643376064 (patch) | |
| tree | 678c1313f7f6e71f1e71449e7c3cba9ad4a9c7d5 /challenge-053 | |
| parent | 59dfb47fb0716ff17bfc9889eb7f2e4dbf347d78 (diff) | |
| download | perlweeklychallenge-club-58191863fa68c268ca2a4d579abd52f643376064.tar.gz perlweeklychallenge-club-58191863fa68c268ca2a4d579abd52f643376064.tar.bz2 perlweeklychallenge-club-58191863fa68c268ca2a4d579abd52f643376064.zip | |
less convoluted
Diffstat (limited to 'challenge-053')
| -rw-r--r-- | challenge-053/markus-holzer/raku/ch-2.p6 | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/challenge-053/markus-holzer/raku/ch-2.p6 b/challenge-053/markus-holzer/raku/ch-2.p6 index ff0d8689a6..57097d20af 100644 --- a/challenge-053/markus-holzer/raku/ch-2.p6 +++ b/challenge-053/markus-holzer/raku/ch-2.p6 @@ -1,32 +1,25 @@ my %rules = - :a({ $_ ~~ 'i'|'o' }), - :e({ $_ ~~ 'a'|'i'|'u' }), - :i({ $_ ~~ 'a'|'e' }), - :o({ $_ ~~ 'i'|'u' }), - :u({ $_ ~~ 'o'|'i' }) + :a('e','i'), + :e('i'), + :o('a','u'), + :u('e','o'), + :i('a','e', 'o', 'u') ; -my @vowels = <a e i o u>; - sub MAIN(Int $n) { - .say for gather { build-str( $n, $_ ) for @vowels } + .say for gather { build-str( $n, $_ ) for %rules.keys.sort } } multi sub build-str( $n, $current ) { my $last = $current.substr( * - 1, 1 ); - for @vowels + for |%rules{ $last } { - next - unless %rules{ $_ }( $last ); - given $current ~ $_ { - take $_ and next - if .chars == $n; - + take $_ and next if .chars == $n; build-str( $n, $_ ); } } |
