diff options
| -rw-r--r-- | challenge-325/mark-anderson/raku/ch-1.raku | 10 | ||||
| -rw-r--r-- | challenge-325/mark-anderson/raku/ch-2.raku | 7 |
2 files changed, 9 insertions, 8 deletions
diff --git a/challenge-325/mark-anderson/raku/ch-1.raku b/challenge-325/mark-anderson/raku/ch-1.raku index 0543ae9985..362cf118b3 100644 --- a/challenge-325/mark-anderson/raku/ch-1.raku +++ b/challenge-325/mark-anderson/raku/ch-1.raku @@ -1,13 +1,17 @@ #!/usr/bin/env raku +use v6.e.PREVIEW; use Test; is consecutive-ones(0,1,1,0,1,1,1), 3; is consecutive-ones(0,0,0,0), 0; is consecutive-ones(1,0,1,0,1,1), 2; -sub consecutive-ones(+@b) +multi consecutive-ones(+@b where .head == 0) { - my $m = @b.join.match(/1+/, :g) or return 0; - $m.max.chars + sum max 0, max @b.snip(flat (0,1) xx *)[1,3...*] } +multi consecutive-ones(+@b) +{ + .elems given max @b.snip(flat (1,0) xx *)[0,2...*] +} diff --git a/challenge-325/mark-anderson/raku/ch-2.raku b/challenge-325/mark-anderson/raku/ch-2.raku index 0cc6eaab34..bd27578d0b 100644 --- a/challenge-325/mark-anderson/raku/ch-2.raku +++ b/challenge-325/mark-anderson/raku/ch-2.raku @@ -5,10 +5,7 @@ is-deeply final-price(8,4,6,2,3), (4,2,4,2,3); is-deeply final-price(1,2,3,4,5), (1,2,3,4,5); is-deeply final-price(7,1,1,5), (6,0,1,5); -sub final-price(+@prices) +sub final-price(+@p) { - @prices.pairs - .map({ quietly .value - @prices[.key+1..*] - .first(* <= .value) - }) + @p.pairs.map({ quietly .value - @p[.key+1..*].first(* <= .value) }) } |
