aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-055/mark-anderson/raku/ch-1.p610
-rw-r--r--challenge-055/mark-anderson/raku/ch-2.p611
2 files changed, 14 insertions, 7 deletions
diff --git a/challenge-055/mark-anderson/raku/ch-1.p6 b/challenge-055/mark-anderson/raku/ch-1.p6
index e7417ec445..0f2870dc48 100644
--- a/challenge-055/mark-anderson/raku/ch-1.p6
+++ b/challenge-055/mark-anderson/raku/ch-1.p6
@@ -1,6 +1,4 @@
-#!/usr/bin/env raku
-
-sub MAIN(Str $binary) {
+sub MAIN(Str $binary where $binary ~~ /<[01]>/) {
my @LR = (0 .. $binary.chars-1).combinations: 2;
for (0 .. $binary.chars-1) -> $n {
@@ -17,10 +15,8 @@ sub MAIN(Str $binary) {
$middle = (("0b" ~ $middle).Int +^ ("0b" ~ "1" x $middle.chars).Int)
.fmt("%0" ~ $middle.chars ~ "b");
- my $result = $left ~ $middle ~ $right;
- %results{"($l, $r)"} = $result.comb(/1/).elems;
+ %results{"($l, $r)"} = ($left ~ $middle ~ $right).comb(/1/).elems;
}
- my $max = %results.values.max;
- .say if .value == $max for %results.sort;
+ .say if .value == %results.values.max for %results.sort;
}
diff --git a/challenge-055/mark-anderson/raku/ch-2.p6 b/challenge-055/mark-anderson/raku/ch-2.p6
new file mode 100644
index 0000000000..2c74d0b8ab
--- /dev/null
+++ b/challenge-055/mark-anderson/raku/ch-2.p6
@@ -0,0 +1,11 @@
+use MONKEY-SEE-NO-EVAL;
+
+sub MAIN(*@array where @array ~~ /\d/) {
+ my @strings = @array.permutations.map(~*).unique;
+
+ for @strings -> $string {
+ my $str = $string.subst(/ \s (\d) \s (\d) /, { ">= $0 <= $1" }, :g);
+ $str = $str.subst(/ (\d) \s (\d) $ /, { "$0 >= $1" });
+ say $string if EVAL $str;
+ }
+}