From 52f6ab1c20000f2336cb97f1e39ab92d6ad99ca3 Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Sun, 25 Oct 2020 09:47:47 -0600 Subject: slight improvements --- challenge-083/mark-anderson/raku/ch-1.p6 | 3 --- 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; -- cgit