diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2024-04-07 10:33:06 +0200 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2024-04-07 10:33:06 +0200 |
| commit | 98b83b10e9c61268087263a333fb76cdea0d70c7 (patch) | |
| tree | ce24f68b604365ec0ddad81d9f238226e16b03d0 | |
| parent | 5e7b7cfa1f272e562842627843bc71ae40d79260 (diff) | |
| download | perlweeklychallenge-club-98b83b10e9c61268087263a333fb76cdea0d70c7.tar.gz perlweeklychallenge-club-98b83b10e9c61268087263a333fb76cdea0d70c7.tar.bz2 perlweeklychallenge-club-98b83b10e9c61268087263a333fb76cdea0d70c7.zip | |
solutions week 263
| -rw-r--r-- | challenge-263/wambash/raku/ch-1.raku | 19 | ||||
| -rw-r--r-- | challenge-263/wambash/raku/ch-2.raku | 19 |
2 files changed, 38 insertions, 0 deletions
diff --git a/challenge-263/wambash/raku/ch-1.raku b/challenge-263/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..13d3ccf8db --- /dev/null +++ b/challenge-263/wambash/raku/ch-1.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +sub target-index (+ints,:$k) { + ints + andthen .sort + andthen .grep: { $_ == $k },:k +} + +multi MAIN (Bool :test($)!) { + use Test; + is target-index(1,5,3,2,4,2,:2k),(1,2); + is target-index(1..5,:6k),(); + is target-index(5,3,2,4,2,1,:4k),(4); + done-testing; +} + +multi MAIN (+ints,:$k) { + put target-index ints,:$k +} diff --git a/challenge-263/wambash/raku/ch-2.raku b/challenge-263/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..91656fd521 --- /dev/null +++ b/challenge-263/wambash/raku/ch-2.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +sub merge-items (*@items) { + @items + andthen .map: *.pairup + andthen .Bag +} + +multi MAIN (Bool :test($)!) { + use Test; + is-deeply merge-items([[1,1],[2,1],[3,2]],[[2,2],[1,3]]),(1=>4 ,2=>3,3=>2).Bag; + is-deeply merge-items([ [1,2], [2,3], [1,3], [3,2] ],[ [3,1], [1,3] ]),(1=>8 ,2=>3,3=>3).Bag; + is-deeply merge-items([ [1,1], [2,2], [3,3]],[ [2,3], [2,4] ]),(1=>1 ,2=>9,3=>3).Bag; + done-testing; +} + +multi MAIN (*@items) { + .put for merge-items @items».split(',') +} |
