diff options
| author | Jan Krňávek <Jan.Krnavek@gmail.com> | 2021-02-19 19:36:42 +0100 |
|---|---|---|
| committer | Jan Krňávek <Jan.Krnavek@gmail.com> | 2021-02-19 19:36:42 +0100 |
| commit | 3c0655eef6f351c4dd035fd7fcdd776840e95ec3 (patch) | |
| tree | 0409eda81681655c9d42ce142190ccc779b6cfb8 | |
| parent | 5510732008024da6d7c668a778f397245640d554 (diff) | |
| download | perlweeklychallenge-club-3c0655eef6f351c4dd035fd7fcdd776840e95ec3.tar.gz perlweeklychallenge-club-3c0655eef6f351c4dd035fd7fcdd776840e95ec3.tar.bz2 perlweeklychallenge-club-3c0655eef6f351c4dd035fd7fcdd776840e95ec3.zip | |
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; +} |
