aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Anderson <mark@frontrangerunner.com>2020-03-24 17:10:17 -0600
committerMark Anderson <mark@frontrangerunner.com>2020-03-24 17:10:17 -0600
commit5259107650157d50812ba16d8cdcee1054bdd5f5 (patch)
treed60733998f7b66d7119a58b48158481e9112e47b
parentd17d318c1a0dfc4b031f8dc2672c0a44713ff2dc (diff)
downloadperlweeklychallenge-club-5259107650157d50812ba16d8cdcee1054bdd5f5.tar.gz
perlweeklychallenge-club-5259107650157d50812ba16d8cdcee1054bdd5f5.tar.bz2
perlweeklychallenge-club-5259107650157d50812ba16d8cdcee1054bdd5f5.zip
replaced array with a hash
-rw-r--r--challenge-053/mark-anderson/raku/ch-2.p613
1 files changed, 9 insertions, 4 deletions
diff --git a/challenge-053/mark-anderson/raku/ch-2.p6 b/challenge-053/mark-anderson/raku/ch-2.p6
index 1a215c8a73..2fc4974065 100644
--- a/challenge-053/mark-anderson/raku/ch-2.p6
+++ b/challenge-053/mark-anderson/raku/ch-2.p6
@@ -1,8 +1,13 @@
#!/usr/bin/env raku
sub MAIN($length where 1 <= $length <= 5) {
- my @connections = ["ae", "ai", "ei", "ia", "ie",
- "io", "iu", "oa", "ou", "uo", "ue"];
+ my %next_letter = (
+ a => [<e i>],
+ e => [<i>],
+ i => [<a e o u>],
+ o => [<a u>],
+ u => [<o e>]
+ );
for <a e i o u> -> $first_letter {
my @queue = Empty;
@@ -11,11 +16,11 @@ sub MAIN($length where 1 <= $length <= 5) {
while @queue[0].chars < $length {
my $str = @queue.shift;
my $last_letter = $str.substr(*-1);
- for @connections.grep(/^$last_letter/).map(*.substr(*-1)) -> $ltr {
+ for %next_letter{$last_letter}.Array -> $ltr {
@queue.push($str ~ $ltr);
}
}
- say @queue;
+ say @queue.join("\n");
}
}