aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark A <andemark@a-iot1t.uch.ad.pvt>2021-07-18 23:53:32 -0600
committerMark A <andemark@a-iot1t.uch.ad.pvt>2021-07-18 23:53:32 -0600
commit58bf5d8427ab57ee8dc095567bab5ffca7160403 (patch)
treeb4775ede05899b6554d6ecddcc53a700490dc4f0
parent675c4ed9a3b441729b9558c051638027242ba77a (diff)
downloadperlweeklychallenge-club-58bf5d8427ab57ee8dc095567bab5ffca7160403.tar.gz
perlweeklychallenge-club-58bf5d8427ab57ee8dc095567bab5ffca7160403.tar.bz2
perlweeklychallenge-club-58bf5d8427ab57ee8dc095567bab5ffca7160403.zip
initial 122
-rw-r--r--challenge-122/mark-anderson/raku/ch-1.raku16
-rw-r--r--challenge-122/mark-anderson/raku/ch-2.raku16
2 files changed, 32 insertions, 0 deletions
diff --git a/challenge-122/mark-anderson/raku/ch-1.raku b/challenge-122/mark-anderson/raku/ch-1.raku
new file mode 100644
index 0000000000..ef2f39b2a1
--- /dev/null
+++ b/challenge-122/mark-anderson/raku/ch-1.raku
@@ -0,0 +1,16 @@
+#!/usr/bin/env raku
+
+use Test;
+plan 6;
+
+is avg-seq(1 ... ∞), (1, 1.5 ... 10.5);
+is avg-seq(1, 3 ... ∞), (1 ... 20);
+is avg-seq(2, 4 ... ∞), (2 ... 21);
+is avg-seq(3, 6 ... ∞), (3, 4.5 ... 31.5);
+is avg-seq(4, 8 ... ∞), (4, 6 ... 42);
+is avg-seq(10, 20 ... ∞), (10, 15 ... 105);
+
+sub avg-seq($seq)
+{
+ $seq.head(20).map({ .narrow with (state $sum += $_) / ++$ });
+}
diff --git a/challenge-122/mark-anderson/raku/ch-2.raku b/challenge-122/mark-anderson/raku/ch-2.raku
new file mode 100644
index 0000000000..1bcac2dff3
--- /dev/null
+++ b/challenge-122/mark-anderson/raku/ch-2.raku
@@ -0,0 +1,16 @@
+#!/usr/bin/env raku
+
+unit sub MAIN(UInt $S);
+
+.say for b-ball-points($S);
+
+multi b-ball-points($S where * == 1) { (1,), }
+multi b-ball-points($S where * == 2) { (1, 1), (2,) }
+multi b-ball-points($S where * == 3) { (1, 1, 1), (1, 2), (2, 1), (3,) }
+
+multi b-ball-points($S)
+{
+ (1..2**($S-1)-1)
+ .map({ (.fmt('%0' ~ $S ~ 'b') ~~ m:g/ (.) [$0+]? /).map({ .chars }) })
+ .grep({ .cache.all < 4 })
+}