aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-055/mark-anderson/raku/ch-1.p612
-rw-r--r--challenge-055/mark-anderson/raku/ch-2.p64
2 files changed, 6 insertions, 10 deletions
diff --git a/challenge-055/mark-anderson/raku/ch-1.p6 b/challenge-055/mark-anderson/raku/ch-1.p6
index 0f2870dc48..c8d041b55c 100644
--- a/challenge-055/mark-anderson/raku/ch-1.p6
+++ b/challenge-055/mark-anderson/raku/ch-1.p6
@@ -1,9 +1,6 @@
-sub MAIN(Str $binary where $binary ~~ /<[01]>/) {
- my @LR = (0 .. $binary.chars-1).combinations: 2;
-
- for (0 .. $binary.chars-1) -> $n {
- @LR.push(($n, $n));
- }
+sub MAIN(Str $binary where * ~~ /^<[01]>+$/) {
+ my @LR = (^$binary.chars).combinations: 2;
+ @LR.push(($_, $_)) for ^$binary.chars;
my %results;
@@ -12,8 +9,7 @@ sub MAIN(Str $binary where $binary ~~ /<[01]>/) {
my $middle = $binary.substr($l, $r+1-$l);
my $right = $binary.substr($r+1);
- $middle = (("0b" ~ $middle).Int +^ ("0b" ~ "1" x $middle.chars).Int)
- .fmt("%0" ~ $middle.chars ~ "b");
+ $middle = (("0b" ~ $middle) +^ ("0b" ~ "1" x $middle.chars)).base(2);
%results{"($l, $r)"} = ($left ~ $middle ~ $right).comb(/1/).elems;
}
diff --git a/challenge-055/mark-anderson/raku/ch-2.p6 b/challenge-055/mark-anderson/raku/ch-2.p6
index 5fe9486805..338bf909b3 100644
--- a/challenge-055/mark-anderson/raku/ch-2.p6
+++ b/challenge-055/mark-anderson/raku/ch-2.p6
@@ -1,8 +1,8 @@
use MONKEY-SEE-NO-EVAL;
-sub MAIN(*@array where @array ~~ /\d/) {
+sub MAIN(*@array where @array.all ~~ /^\d+$/) {
for @array.permutations.map(~*).unique {
.say if EVAL (.comb(/\d/) <<Z~>> (" >= ", " <= "))
- .subst(/\s.\=\s$/, q{});
+ .subst(/\s.\=\s$/, q{});
}
}