aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2024-04-07 10:33:06 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2024-04-07 10:33:06 +0200
commit98b83b10e9c61268087263a333fb76cdea0d70c7 (patch)
treece24f68b604365ec0ddad81d9f238226e16b03d0
parent5e7b7cfa1f272e562842627843bc71ae40d79260 (diff)
downloadperlweeklychallenge-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.raku19
-rw-r--r--challenge-263/wambash/raku/ch-2.raku19
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(',')
+}