aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-172/mark-anderson/raku/ch-1.raku2
-rw-r--r--challenge-172/mark-anderson/raku/ch-2.raku17
2 files changed, 10 insertions, 9 deletions
diff --git a/challenge-172/mark-anderson/raku/ch-1.raku b/challenge-172/mark-anderson/raku/ch-1.raku
index 196e5d6a1b..6c34064f8b 100644
--- a/challenge-172/mark-anderson/raku/ch-1.raku
+++ b/challenge-172/mark-anderson/raku/ch-1.raku
@@ -12,5 +12,5 @@ is-deeply prime-partition(95, 8), ((2, 3, 5, 7, 11, 13, 17, 37),
sub prime-partition($m, $n)
{
- (2,3,5,7...$m-2).grep(&is-prime).combinations($n).grep({ .sum == $m })
+ (2,3,5,7...$m-2).grep(&is-prime).combinations($n).grep({ .sum == $m })
}
diff --git a/challenge-172/mark-anderson/raku/ch-2.raku b/challenge-172/mark-anderson/raku/ch-2.raku
index 7623904369..828ac0192d 100644
--- a/challenge-172/mark-anderson/raku/ch-2.raku
+++ b/challenge-172/mark-anderson/raku/ch-2.raku
@@ -12,13 +12,14 @@ is five-number-summary(7, 15, 36, 39, 40, 41),
sub five-number-summary(+@a)
{
- @a .= sort;
+ @a .= sort;
+ my $q := quartile();
- return {
- min => @a.head,
- lower-q => quartile('lower'),
+ return {
+ min => @a.head,
+ lower-q => $q.head,
median => median(@a),
- upper-q => quartile('upper'),
+ upper-q => $q.tail,
max => @a.tail
}
@@ -26,14 +27,14 @@ sub five-number-summary(+@a)
{
my $r = @a.elems div 2;
@a.elems mod 2 ?? @a[$r] !! (.head.tail + .tail.head) / 2
- given @a.rotor($r).cache
+ given @a.rotor($r).cache
}
- sub quartile($s)
+ sub quartile
{
# method 1 from https://en.wikipedia.org/wiki/Quartile
my $r = @a.elems div 2;
my @t = @a.elems mod 2 ?? @a.rotor($r, 1, $r) !! @a.rotor($r);
- $s eq 'lower' ?? median(@t.head) !! median(@t.tail)
+ median(@t.head), median(@t.tail)
}
}