aboutsummaryrefslogtreecommitdiff
path: root/challenge-237
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2023-10-08 23:29:25 +0100
committerGitHub <noreply@github.com>2023-10-08 23:29:25 +0100
commit2072b3b738e190231ffa23fe4703aebca6486971 (patch)
tree410113b52d109cc469806a5b63f18860e44e49b5 /challenge-237
parenta8acfea1d79ee2ef789fa3b2d0a2e900105012fe (diff)
parentd13c683272becf20ed7c603323e4dd63238cd9ec (diff)
downloadperlweeklychallenge-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.jl21
-rw-r--r--challenge-237/wambash/raku/ch-1.raku21
-rw-r--r--challenge-237/wambash/raku/ch-2.raku26
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
+}