diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-02-20 00:52:26 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-20 00:52:26 +0000 |
| commit | 63ced17e1932497b2a976a45e608b969338ebfb6 (patch) | |
| tree | 61e3ee35b50e43696a5e0a18ba14411e6c00d679 | |
| parent | 1b52aaf4362341a8b4b865adda3e4da88378a2ce (diff) | |
| parent | 3c0655eef6f351c4dd035fd7fcdd776840e95ec3 (diff) | |
| download | perlweeklychallenge-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.raku | 26 | ||||
| -rw-r--r-- | challenge-100/wambash/raku/ch-2.raku | 24 |
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; +} |
