diff options
| author | Mark Anderson <mark@andemark.io> | 2025-05-19 10:16:48 +0000 |
|---|---|---|
| committer | Mark Anderson <mark@andemark.io> | 2025-05-19 10:16:48 +0000 |
| commit | e69cf5c18c93538495bd4f040febc0f0fe9e3440 (patch) | |
| tree | 97549f1805e7b3c62c54d2995d614023ad78eb27 | |
| parent | 6c467a026c325f27386294744ad5d0456d6c1c50 (diff) | |
| download | perlweeklychallenge-club-e69cf5c18c93538495bd4f040febc0f0fe9e3440.tar.gz perlweeklychallenge-club-e69cf5c18c93538495bd4f040febc0f0fe9e3440.tar.bz2 perlweeklychallenge-club-e69cf5c18c93538495bd4f040febc0f0fe9e3440.zip | |
Challenge 322 Solutions (Raku)
| -rw-r--r-- | challenge-322/mark-anderson/raku/ch-1.raku | 21 | ||||
| -rw-r--r-- | challenge-322/mark-anderson/raku/ch-2.raku | 14 |
2 files changed, 35 insertions, 0 deletions
diff --git a/challenge-322/mark-anderson/raku/ch-1.raku b/challenge-322/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..d40f05735a --- /dev/null +++ b/challenge-322/mark-anderson/raku/ch-1.raku @@ -0,0 +1,21 @@ +#!/usr/bin/env raku +use Test; + +is format-string("ABC-D-E-F", 3), "ABC-DEF"; +is format-string("A-BC-D-E", 2), "A-BC-DE"; +is format-string("-A-B-CD-E", 4), "A-BCDE"; + +sub format-string($str is copy, $int) +{ + $str ~~ s:g/"-"//; + my $m = "." x ($str.chars mod $int or $int); + my $i = "." x $int; + S:g/<?after <$m>> (<$i>)/-$0/ given $str +} + +sub format-string-v2($str, $int) +{ + my @chars = $str.comb(/<upper>/); + my $list = flat (@chars mod $int or Empty), ($int, $int...*); + @chars.rotor($list)>>.join.join("-") +} diff --git a/challenge-322/mark-anderson/raku/ch-2.raku b/challenge-322/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..b0df999fce --- /dev/null +++ b/challenge-322/mark-anderson/raku/ch-2.raku @@ -0,0 +1,14 @@ +#/usr/bin/env raku +use Test; + +is-deeply rank-array(55,22,44,33), (4,1,3,2); +is-deeply rank-array(10,10,10), (1,1,1); +is-deeply rank-array(5,1,1,4,3), (4,1,1,3,2); + +sub rank-array(+@ints) +{ + .{@ints} given [-Inf, |@ints].unique + .sort + .antipairs + .Map +} |
