From b1921577168a9cb1ba0892f4086e008ae62849f4 Mon Sep 17 00:00:00 2001 From: BarrOff <58253563+BarrOff@users.noreply.github.com> Date: Mon, 1 Jan 2024 00:00:09 +0100 Subject: feat: add solution for challenge 249 from BarrOff --- challenge-249/barroff/raku/ch-1.p6 | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 challenge-249/barroff/raku/ch-1.p6 diff --git a/challenge-249/barroff/raku/ch-1.p6 b/challenge-249/barroff/raku/ch-1.p6 new file mode 100644 index 0000000000..1e6d049f90 --- /dev/null +++ b/challenge-249/barroff/raku/ch-1.p6 @@ -0,0 +1,22 @@ +#!/usr/bin/env raku + +sub equal-pairs(@nums --> List) { + my %number-bag = Bag(@nums); + return () if so any(%number-bag.values()) % 2 ≠ 0; + my @pairs = map({ Slip(($_, $_) xx (%number-bag{$_} div 2))}, %number-bag.keys); + return @pairs; +} + +#| Run test cases +multi sub MAIN('test') { + use Test; + plan 2; + + is sort(equal-pairs([3, 2, 3, 2, 2, 2])), ((2, 2), (2, 2), (3, 3)), 'Works for (3, 2, 3, 2, 2, 2)'; + is equal-pairs([1, 2, 3, 4]), (), 'Works for (1, 2, 3, 4)'; +} + +#| Take user provided list like 1 1 2 2 2 3 +multi sub MAIN(*@ints) { + say equal-pairs(@ints); +} -- cgit