aboutsummaryrefslogtreecommitdiff
path: root/challenge-057/mark-anderson
diff options
context:
space:
mode:
authorMark Anderson <mark@frontrangerunner.com>2020-04-21 07:52:00 -0600
committerMark Anderson <mark@frontrangerunner.com>2020-04-21 07:52:00 -0600
commit77f8435582caf3140d73ebbb68897050742f89f2 (patch)
tree84fce8ba7d29854ba7a91b31a6cea6dc785131f9 /challenge-057/mark-anderson
parent5e3a0f45f16b83aa7b5c57462d6fec05e2cca398 (diff)
downloadperlweeklychallenge-club-77f8435582caf3140d73ebbb68897050742f89f2.tar.gz
perlweeklychallenge-club-77f8435582caf3140d73ebbb68897050742f89f2.tar.bz2
perlweeklychallenge-club-77f8435582caf3140d73ebbb68897050742f89f2.zip
ch-2.pl and ch-2.p6
Diffstat (limited to 'challenge-057/mark-anderson')
-rw-r--r--challenge-057/mark-anderson/perl/ch-2.pl22
-rw-r--r--challenge-057/mark-anderson/raku/ch-2.p68
2 files changed, 27 insertions, 3 deletions
diff --git a/challenge-057/mark-anderson/perl/ch-2.pl b/challenge-057/mark-anderson/perl/ch-2.pl
new file mode 100644
index 0000000000..eb1ffc2f30
--- /dev/null
+++ b/challenge-057/mark-anderson/perl/ch-2.pl
@@ -0,0 +1,22 @@
+#!/usr/bin/env perl
+use Modern::Perl;
+
+my @words = qw/alphabet book carpet cadmium cadeau alpine/;
+
+my @prefixes;
+
+for my $word (@words) {
+ my $length;
+ my $prefix;
+ my @rest = @words;
+
+ do {
+ $length++;
+ $prefix = substr($word, 0, $length);
+ @rest = grep { /^$prefix/ } @rest;
+ } while @rest > 1;
+
+ push (@prefixes, $prefix);
+}
+
+say join(", ", @prefixes);
diff --git a/challenge-057/mark-anderson/raku/ch-2.p6 b/challenge-057/mark-anderson/raku/ch-2.p6
index eb203a884b..bff25c9047 100644
--- a/challenge-057/mark-anderson/raku/ch-2.p6
+++ b/challenge-057/mark-anderson/raku/ch-2.p6
@@ -4,13 +4,15 @@ my @words = <alphabet book carpet cadmium cadeau alpine>;
my @prefixes = gather {
for @words -> $word {
+ my $length;
my $prefix;
- my $length = 0;
+ my @rest = @words;
repeat {
$length++;
- $prefix = $word.substr(0, $length);
- } while @words.grep(* ne $word) ~~ / ^ $prefix /;
+ $prefix = $word.substr(0, $length);
+ @rest = @rest.grep(/^$prefix/);
+ } while @rest > 1;
take $prefix;
}