aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-02-20 00:52:26 +0000
committerGitHub <noreply@github.com>2021-02-20 00:52:26 +0000
commit63ced17e1932497b2a976a45e608b969338ebfb6 (patch)
tree61e3ee35b50e43696a5e0a18ba14411e6c00d679
parent1b52aaf4362341a8b4b865adda3e4da88378a2ce (diff)
parent3c0655eef6f351c4dd035fd7fcdd776840e95ec3 (diff)
downloadperlweeklychallenge-club-63ced17e1932497b2a976a45e608b969338ebfb6.tar.gz
perlweeklychallenge-club-63ced17e1932497b2a976a45e608b969338ebfb6.tar.bz2
perlweeklychallenge-club-63ced17e1932497b2a976a45e608b969338ebfb6.zip
Merge pull request #3574 from wambash/challenge-week-100
solutions week 100
-rw-r--r--challenge-100/wambash/raku/ch-1.raku26
-rw-r--r--challenge-100/wambash/raku/ch-2.raku24
2 files changed, 50 insertions, 0 deletions
diff --git a/challenge-100/wambash/raku/ch-1.raku b/challenge-100/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..bd1328645e
--- /dev/null
+++ b/challenge-100/wambash/raku/ch-1.raku
@@ -0,0 +1,26 @@
+#!/usr/bin/env raku
+
+multi fun-time($time) {
+ $time ~~ / (\d+) ':' (\d+) \s* (<[ap]>m)? /;
+
+ with $2 {
+ when 'am' { $0 ~ ':' ~ $1 }
+ when 'pm' { $0 + 12 ~ ':' ~ $1 }
+ } orwith $0 {
+ when * ≤ 12 { $0 ~ ':' ~ $1 ~ 'am' }
+ when * > 12 { '0' ~ ($0 - 12) ~ ':' ~ $1 ~ 'pm' }
+ }
+}
+
+multi MAIN ($time) {
+ say fun-time $time
+}
+
+multi MAIN (Bool :$test! ) {
+ use Test;
+ is fun-time('19:20'), '07:20pm';
+ is fun-time('07:20pm'), '19:20';
+ is fun-time('07:20 am'), '07:20';
+ is fun-time('07:20'), '07:20am';
+ done-testing;
+}
diff --git a/challenge-100/wambash/raku/ch-2.raku b/challenge-100/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..17f5776857
--- /dev/null
+++ b/challenge-100/wambash/raku/ch-2.raku
@@ -0,0 +1,24 @@
+#!/usr/bin/env raku
+
+sub triangle-sum-reducer (@a, @b) {
+ Inf, |@a, Inf
+ andthen .rotor: 2 => -1
+ andthen .map: *.min
+ andthen $_ Z+ @b
+}
+
+sub triangle-sum ( +@a ) {
+ @a
+ andthen .reduce: &triangle-sum-reducer
+ andthen .min
+}
+
+multi MAIN (Bool :$test!) {
+ use Test;
+ is triangle-sum-reducer( [1], [2,4] ), (3,5);
+ is triangle-sum-reducer( [6,4,9], [5,1,7,2] ), (11,5,11,11);
+
+ is triangle-sum( [3], [3,1], [5,2,3], [4,3,1,3] ), 7;
+ is triangle-sum( [1], [2,4], [6,4,9], [5,1,7,2] ), 8;
+ done-testing;
+}