diff options
| -rw-r--r-- | challenge-055/mark-anderson/raku/ch-1.p6 | 12 | ||||
| -rw-r--r-- | challenge-055/mark-anderson/raku/ch-2.p6 | 4 |
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{}); } } |
