diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2023-10-08 23:29:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-08 23:29:25 +0100 |
| commit | 2072b3b738e190231ffa23fe4703aebca6486971 (patch) | |
| tree | 410113b52d109cc469806a5b63f18860e44e49b5 /challenge-237 | |
| parent | a8acfea1d79ee2ef789fa3b2d0a2e900105012fe (diff) | |
| parent | d13c683272becf20ed7c603323e4dd63238cd9ec (diff) | |
| download | perlweeklychallenge-club-2072b3b738e190231ffa23fe4703aebca6486971.tar.gz perlweeklychallenge-club-2072b3b738e190231ffa23fe4703aebca6486971.tar.bz2 perlweeklychallenge-club-2072b3b738e190231ffa23fe4703aebca6486971.zip | |
Merge pull request #8834 from wambash/challenge-week-237
Challenge week 237
Diffstat (limited to 'challenge-237')
| -rw-r--r-- | challenge-237/wambash/julia/ch-1.jl | 21 | ||||
| -rw-r--r-- | challenge-237/wambash/raku/ch-1.raku | 21 | ||||
| -rw-r--r-- | challenge-237/wambash/raku/ch-2.raku | 26 |
3 files changed, 68 insertions, 0 deletions
diff --git a/challenge-237/wambash/julia/ch-1.jl b/challenge-237/wambash/julia/ch-1.jl new file mode 100644 index 0000000000..67fd951af3 --- /dev/null +++ b/challenge-237/wambash/julia/ch-1.jl @@ -0,0 +1,21 @@ +#!/usr/bin/env julia +using Lazy +using Dates + +seizetheday(year, month, week_day_of_month, day_of_week) = @as x begin + Date(year, month, 1) + range(x, x+Month(1)) + filter( day -> dayofweek(day) == day_of_week, x) + get(x,week_day_of_month, missing) + day +end + + +using Test +seizetheday() = @testset "seizetheday" begin + @test seizetheday(2024, 4,3,2) == 16 + @test seizetheday(2025,10,2,4) == 9 + @test seizetheday(2026, 8,5,3) |> ismissing +end + +println(seizetheday(map(x -> parse(Int,x),ARGS)...)) 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 +} |
