aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-057/mohammad-anwar/raku/ch-2.p68
-rw-r--r--challenge-057/mohammad-anwar/raku/ch-2a.p68
2 files changed, 12 insertions, 4 deletions
diff --git a/challenge-057/mohammad-anwar/raku/ch-2.p6 b/challenge-057/mohammad-anwar/raku/ch-2.p6
index 96d5405f76..749a14ca4b 100644
--- a/challenge-057/mohammad-anwar/raku/ch-2.p6
+++ b/challenge-057/mohammad-anwar/raku/ch-2.p6
@@ -9,9 +9,13 @@ sub shortest-unique-prefix($words where .all ~~ Str) {
my $l = $word.chars;
while $i < $l {
my $char = $word.substr(0, $i);
- my $count = $words.grep({ m/^$char/ }).elems;
+ # before :
+ # my $count = $words.grep({ m/^$char/ }).elems;
+ # after : suggested by @HrBollermann
+ my $count = $words.grep( *.starts-with( $char ) ).elems;
- $count > 1 && $i++ and next;
+ $i++;
+ next if $count > 1;
$p.push: $char and last;
}
}
diff --git a/challenge-057/mohammad-anwar/raku/ch-2a.p6 b/challenge-057/mohammad-anwar/raku/ch-2a.p6
index 8d39ce40b7..0e32eda5b4 100644
--- a/challenge-057/mohammad-anwar/raku/ch-2a.p6
+++ b/challenge-057/mohammad-anwar/raku/ch-2a.p6
@@ -21,9 +21,13 @@ sub shortest-unique-prefix($words where .all ~~ Str) {
my $l = $word.chars;
while $i < $l {
my $char = $word.substr(0, $i);
- my $count = $words.grep({ m/^$char/ }).elems;
+ # before :
+ # my $count = $words.grep({ m/^$char/ }).elems;
+ # after : suggested by @HrBollermann
+ my $count = $words.grep( *.starts-with( $char ) ).elems;
- $count > 1 && $i++ and next;
+ $i++;
+ next if $count > 1;
$p.push: $char and last;
}
}