From c84fa3a7f7e470844a68a46788cb616194d7318f Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sat, 24 May 2025 20:26:30 +0200 Subject: solutions week 322 --- challenge-322/wambash/raku/ch-1.raku | 23 +++++++++++++++++++++++ challenge-322/wambash/raku/ch-2.raku | 19 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 challenge-322/wambash/raku/ch-1.raku create mode 100644 challenge-322/wambash/raku/ch-2.raku diff --git a/challenge-322/wambash/raku/ch-1.raku b/challenge-322/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..657faeaa3a --- /dev/null +++ b/challenge-322/wambash/raku/ch-1.raku @@ -0,0 +1,23 @@ +#!/usr/bin/env raku + +sub string-format ($str,:$i=3) { + $str + andthen .comb: /<-[-]>/ + andthen .reverse + andthen .batch: $i + andthen .map: *.reverse.join + andthen .reverse + andthen .join: '-' +} + +multi MAIN (Bool :test($)!) { + use Test; + is string-format('ABC-D-E-F',:3i), 'ABC-DEF'; + is string-format('A-BC-D-E',:2i), 'A-BC-DE'; + is string-format('A-B-CD-E',:4i), 'A-BCDE'; + done-testing; +} + +multi MAIN ($str,:$i=3) { + say string-format $str,:$i; +} diff --git a/challenge-322/wambash/raku/ch-2.raku b/challenge-322/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..4b22eca1df --- /dev/null +++ b/challenge-322/wambash/raku/ch-2.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +sub rank-array (+ints) { + my %ranks := %( ints.sort.squish.antipairs ); + + ints.map: { %ranks{$_} + 1 } +} + +multi MAIN (Bool :test($)!) { + use Test; + is rank-array(55,22,44,33), (4,1,3,2); + is rank-array(10,10,10), (1,1,1); + is rank-array(5,1,1,4,3), (4,1,1,3,2); + done-testing; +} + +multi MAIN (+ints) { + put rank-array ints; +} -- cgit