aboutsummaryrefslogtreecommitdiff
path: root/challenge-237
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2023-10-08 23:13:44 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2023-10-08 23:13:44 +0200
commit7ec98672a4d9dc21153a2dfb4be2decd51bce584 (patch)
tree4e87255c77bf1bdb5377dbba0b6ffd16821ff5c9 /challenge-237
parent02aa2cddcb560fe9843129749f849975f80c8c2d (diff)
downloadperlweeklychallenge-club-7ec98672a4d9dc21153a2dfb4be2decd51bce584.tar.gz
perlweeklychallenge-club-7ec98672a4d9dc21153a2dfb4be2decd51bce584.tar.bz2
perlweeklychallenge-club-7ec98672a4d9dc21153a2dfb4be2decd51bce584.zip
solutions week 237
Diffstat (limited to 'challenge-237')
-rw-r--r--challenge-237/wambash/raku/ch-1.raku21
-rw-r--r--challenge-237/wambash/raku/ch-2.raku26
2 files changed, 47 insertions, 0 deletions
diff --git a/challenge-237/wambash/raku/ch-1.raku b/challenge-237/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..ff2f17af42
--- /dev/null
+++ b/challenge-237/wambash/raku/ch-1.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/env raku
+
+sub seize-the-day ($year, $month, $weekday-of-month, $day-of-week) {
+ Date.new: :$year, :$month
+ andthen $_ ..^ .later: :1month
+ andthen .grep: { .day-of-week == $day-of-week }\
+ andthen .[$weekday-of-month-1]
+ andthen .day
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is seize-the-day(2024,4,3,2),16;
+ is seize-the-day(2025,10,2,4),9;
+ is-deeply seize-the-day(2026,8,5,3),Empty;
+ done-testing;
+}
+
+multi MAIN ($year, $month, $weekday-of-month, $day-of-wee) {
+ say +seize-the-day $year, $month, $weekday-of-month, $day-of-wee
+}
diff --git a/challenge-237/wambash/raku/ch-2.raku b/challenge-237/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..5596929ba6
--- /dev/null
+++ b/challenge-237/wambash/raku/ch-2.raku
@@ -0,0 +1,26 @@
+#!/usr/bin/env raku
+use v6.e.PREVIEW;
+
+
+sub maximise-greatness (+nums) {
+ my @sorted = nums.sort;
+ my @snip-func = @sorted.map: { * ≤ $_ }
+
+ @sorted
+ andthen .snip: |@snip-func
+ andthen .skip
+ andthen .elems
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is maximise-greatness(1,3,5,2,1,3,1),4;
+ is maximise-greatness(1,2,3,4),3;
+ my @nsg = (1..10).map: {slip $_ xx $_ };
+ is maximise-greatness(@nsg), 45;
+ done-testing;
+}
+
+multi MAIN (*@nums) {
+ say maximise-greatness @nums
+}