aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Anderson <mark@andemark.io>2025-06-15 17:27:06 +0000
committerMark Anderson <mark@andemark.io>2025-06-15 17:27:06 +0000
commit7278ab2f4862abe28dde25e1853dc060eb78c14f (patch)
tree3855011320650fe821dbbbce6c2b2203cb4900a4
parente6cb523f26f177d8a23cb1f7470dda76925cdb0b (diff)
downloadperlweeklychallenge-club-7278ab2f4862abe28dde25e1853dc060eb78c14f.tar.gz
perlweeklychallenge-club-7278ab2f4862abe28dde25e1853dc060eb78c14f.tar.bz2
perlweeklychallenge-club-7278ab2f4862abe28dde25e1853dc060eb78c14f.zip
ch-1.raku do-over
-rw-r--r--challenge-325/mark-anderson/raku/ch-1.raku10
-rw-r--r--challenge-325/mark-anderson/raku/ch-2.raku7
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) })
}