From 62774e809fdabef49849468c2d894540cd08a583 Mon Sep 17 00:00:00 2001 From: Polgár Márton Date: Mon, 27 Feb 2023 21:08:20 +0100 Subject: Weeklies for 206th week by 2colours --- challenge-206/2colours/raku/ch-1.raku | 26 ++++++++++++++++++++++++++ challenge-206/2colours/raku/ch-2.raku | 13 +++++++++++++ 2 files changed, 39 insertions(+) create mode 100755 challenge-206/2colours/raku/ch-1.raku create mode 100755 challenge-206/2colours/raku/ch-2.raku diff --git a/challenge-206/2colours/raku/ch-1.raku b/challenge-206/2colours/raku/ch-1.raku new file mode 100755 index 0000000000..b0ea729a7a --- /dev/null +++ b/challenge-206/2colours/raku/ch-1.raku @@ -0,0 +1,26 @@ +#!/usr/bin/env raku + + +my token time-hours24 { \d ** 2 } +my token time-minutes { \d ** 2 } +my token time-o-clock { ':' } +my token time-list {^ '(' ['"' '"'] ** 2..* % ',' ')' $} + +sub infix:($lhs is copy, $rhs is copy) { + $_ = .split(':').&{ .[0] * 60 + .[1]} for ($lhs, $rhs); + ($lhs - $rhs) % 1440 +} + +sub MAIN($_) { + die 'Please provide a valid list of HH:MM times' unless S:g/\s// ~~ &time-list; + given my Str() @time = $ { + .=sort; + .push: .head; + } + say @time; + @time + .rotor: 2 => -1 andthen + .map: { .[1] t- .[0] } andthen + .min + .say; +} \ No newline at end of file diff --git a/challenge-206/2colours/raku/ch-2.raku b/challenge-206/2colours/raku/ch-2.raku new file mode 100755 index 0000000000..dd8a4d3895 --- /dev/null +++ b/challenge-206/2colours/raku/ch-2.raku @@ -0,0 +1,13 @@ +#!/usr/bin/env raku + + +my token unsigned-integer { 0 | <[1..9]><[0..9]>* }; +my token integer { '-'? }; +subset IntList of Str where /^ '(' * % ',' ')' $/; + + +sub MAIN(Str $array) { + die 'Please supply a valid list of integers.' unless $array.subst(/\s/, '', :g) ~~ IntList; + my Int() @array = $; + @array.sort.rotor(1 => 1).flat.sum.say; +} -- cgit