From 7ec98672a4d9dc21153a2dfb4be2decd51bce584 Mon Sep 17 00:00:00 2001 From: Jan Krňávek Date: Sun, 8 Oct 2023 23:13:44 +0200 Subject: solutions week 237 --- challenge-237/wambash/raku/ch-1.raku | 21 +++++++++++++++++++++ challenge-237/wambash/raku/ch-2.raku | 26 ++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 challenge-237/wambash/raku/ch-1.raku create mode 100644 challenge-237/wambash/raku/ch-2.raku 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 +} -- cgit