aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2022-09-25 19:50:25 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2022-09-25 19:50:25 +0200
commitf554e31176279617529c7d38b2a4fb502411cf16 (patch)
tree52c782e8dc0f4825beab705f0554d6e3bcaefd79
parent5979e8be2ae466fad1c654d93f79cf183a4d9766 (diff)
downloadperlweeklychallenge-club-f554e31176279617529c7d38b2a4fb502411cf16.tar.gz
perlweeklychallenge-club-f554e31176279617529c7d38b2a4fb502411cf16.tar.bz2
perlweeklychallenge-club-f554e31176279617529c7d38b2a4fb502411cf16.zip
solutions week 183
-rw-r--r--challenge-183/wambash/raku/ch-1.raku19
-rw-r--r--challenge-183/wambash/raku/ch-2.raku26
2 files changed, 45 insertions, 0 deletions
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').<year day>, (3, 264);
+ is date-diference('2020-09-15','2022-03-29').<year day>, (1, 195);
+ is date-diference('2020-09-15','2022-03-09').<year day>, (1, 175);
+ is date-diference('2019-12-31','2020-01-01').<year day>, (0, 1);
+ is date-diference('2019-12-01','2019-12-31').<year day>, (0, 30);
+ is date-diference('2019-12-31','2021-12-31').<year day>, (2, 0);
+ is date-diference('2019-12-31','2020-12-31').<year day>, (1, 0);
+ is date-diference('2020-09-15','2021-09-16').<year day>, (1, 1);
+ is date-diference('2019-09-15','2021-09-16').<year day>, (2, 1);
+ done-testing;
+}
+
+multi MAIN (Date() $start, Date() $end) {
+ say date-diference $start, $end
+}