From f554e31176279617529c7d38b2a4fb502411cf16 Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sun, 25 Sep 2022 19:50:25 +0200 Subject: solutions week 183 --- challenge-183/wambash/raku/ch-1.raku | 19 +++++++++++++++++++ challenge-183/wambash/raku/ch-2.raku | 26 ++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 challenge-183/wambash/raku/ch-1.raku create mode 100644 challenge-183/wambash/raku/ch-2.raku diff --git a/challenge-183/wambash/raku/ch-1.raku b/challenge-183/wambash/raku/ch-1.raku new file mode 100644 index 0000000000..2cb364f562 --- /dev/null +++ b/challenge-183/wambash/raku/ch-1.raku @@ -0,0 +1,19 @@ +#!/usr/bin/env raku + +sub unique-array (+@list) { + @list.unique: with => &[eqv] +} + +multi MAIN (Bool :test($)!) { + use Test; + is unique-array([1,2], [3,4], [5,6], [1,2]), ([1,2], [3,4], [5,6]); + is-deeply unique-array([9,1], [3,7], [2,5], [2,5]),([9, 1], [3,7], [2,5]); + done-testing; +} + +multi MAIN (*@list) { + @list + andthen .map: *.split( ',' ).Array + andthen unique-array $_ + andthen .say +} diff --git a/challenge-183/wambash/raku/ch-2.raku b/challenge-183/wambash/raku/ch-2.raku new file mode 100644 index 0000000000..e801f1b273 --- /dev/null +++ b/challenge-183/wambash/raku/ch-2.raku @@ -0,0 +1,26 @@ +#!/usr/bin/env raku + +sub date-diference (Date() $start, Date() $end) { + my @year-seq = $start, *.later(:1year) ...^ * > $end; + my $year = @year-seq.elems - 1 ; + my $day = $end - @year-seq.tail; + \(:$year, :$day) +} + +multi MAIN (Bool :test($)!) { + use Test; + is date-diference('2019-02-10','2022-11-01')., (3, 264); + is date-diference('2020-09-15','2022-03-29')., (1, 195); + is date-diference('2020-09-15','2022-03-09')., (1, 175); + is date-diference('2019-12-31','2020-01-01')., (0, 1); + is date-diference('2019-12-01','2019-12-31')., (0, 30); + is date-diference('2019-12-31','2021-12-31')., (2, 0); + is date-diference('2019-12-31','2020-12-31')., (1, 0); + is date-diference('2020-09-15','2021-09-16')., (1, 1); + is date-diference('2019-09-15','2021-09-16')., (2, 1); + done-testing; +} + +multi MAIN (Date() $start, Date() $end) { + say date-diference $start, $end +} -- cgit