diff options
| -rw-r--r-- | challenge-083/mark-anderson/raku/ch-1.p6 | 3 | ||||
| -rw-r--r-- | challenge-083/mark-anderson/raku/ch-2.p6 | 13 |
2 files changed, 6 insertions, 10 deletions
diff --git a/challenge-083/mark-anderson/raku/ch-1.p6 b/challenge-083/mark-anderson/raku/ch-1.p6 index c001e08bc8..5211876e52 100644 --- a/challenge-083/mark-anderson/raku/ch-1.p6 +++ b/challenge-083/mark-anderson/raku/ch-1.p6 @@ -1,13 +1,10 @@ use Test; - plan 2; my $S = "The Weekly Challenge"; - ok words-length($S) == 6, "$S = 6"; $S = "The purpose of our lives is to be happy"; - ok words-length($S) == 23, "$S = 23"; sub words-length($S) { diff --git a/challenge-083/mark-anderson/raku/ch-2.p6 b/challenge-083/mark-anderson/raku/ch-2.p6 index 73732ade9d..0398c914d0 100644 --- a/challenge-083/mark-anderson/raku/ch-2.p6 +++ b/challenge-083/mark-anderson/raku/ch-2.p6 @@ -1,15 +1,14 @@ -unit sub MAIN(*@A where (.elems > 1 and .all ~~ UInt and .all > 0)); +subset Positive of UInt where * > 0; + +unit sub MAIN(*@A where (.all ~~ Positive and .elems > 1)); my $A = gather { - for @A.keys.combinations.skip -> @C { + for @A.keys.combinations(1..@A.end) -> @C { my @N = @A; @N[@C].map(* *= -1); take [@N.sum, @C.elems, @N] if @N.sum >= 0; } } -my ($Sum, $A2) = (min classify { .[0] }, $A).kv; -my ($Flips, $A3) = (min classify { .[1] }, |$A2).kv; - -say "Sum = $Sum\nFlips = $Flips\n"; -say .[2].fmt("(%d)", " + ") for |$A3; +say $A.classify(*[0]).min.value. + classify(*[1]).min.key; |
