diff options
| -rw-r--r-- | challenge-115/mimosinnet/raku/ch-1.raku | 46 | ||||
| -rw-r--r-- | challenge-115/mimosinnet/raku/ch-2.raku | 44 |
2 files changed, 90 insertions, 0 deletions
diff --git a/challenge-115/mimosinnet/raku/ch-1.raku b/challenge-115/mimosinnet/raku/ch-1.raku new file mode 100644 index 0000000000..993cf9ab40 --- /dev/null +++ b/challenge-115/mimosinnet/raku/ch-1.raku @@ -0,0 +1,46 @@ +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-115/ + +# Got the insiration from Luca Ferrari and Ulrigh Rieke +# Luca's solution is quite neat! + +sub challenge( @strings ) { + my @letter_first = @strings.map({ $_.comb.Array.shift }); + my @letter_last = @strings.map({ $_.comb.Array.pop }); + (@letter_first.sort ~~ @letter_last.sort).Numeric; +} + +multi sub MAIN( @strings ) { + say 'Input: @S = ',@strings; + say 'Output: ',challenge(@strings),"\n"; +} + +multi sub MAIN( 'challenge' ) { + + my @challenge = ( + <abc dea cd>, + <ade cbd fgh> + ); + + for @challenge -> @a { + MAIN(@a); + } +} + +multi sub MAIN( 'test' ) is hidden-from-USAGE { + use Test; + + my @test = [ + <abc dea cd>, 1, + <ade cbd fgh>, 0, + <abc dea fgh hif>, 0, + <abc dec cfa cgd>, 1, + <abc def cd>, 0 + ]; + + for @test -> @a, $b { + is challenge(@a), $b; + } + + done-testing; + +} diff --git a/challenge-115/mimosinnet/raku/ch-2.raku b/challenge-115/mimosinnet/raku/ch-2.raku new file mode 100644 index 0000000000..66e9e438be --- /dev/null +++ b/challenge-115/mimosinnet/raku/ch-2.raku @@ -0,0 +1,44 @@ +# https://perlweeklychallenge.org/blog/perl-weekly-challenge-115/ + +# Find the lowest multiple of 2 and sort the rest of numbers +sub challenge( @numbers ) { + my $last_number = @numbers.sort.first({ $_ %% 2 }); + my @other_numbers = @numbers.grep(none $last_number).sort({ $^b leg $^a }); + @other_numbers.push: $last_number; + return @other_numbers.join; +} + +multi sub MAIN( @numbers ) { + say 'Input: @N = ',@numbers; + say 'Output: ',challenge(@numbers),"\n"; +} + +multi sub MAIN( 'challenge' ) { + + my @challenge = ( + (1, 0, 2, 6), + (1, 4, 2, 8), + (4, 1, 7, 6) + ); + + for @challenge -> @a { + MAIN(@a); + } +} + +multi sub MAIN( 'test' ) is hidden-from-USAGE { + use Test; + + my @test = ( + (1, 0, 2, 6), 6210, + (1, 4, 2, 8), 8412, + (4, 1, 7, 6), 7614 + ); + + for @test -> @a, $b { + is challenge(@a), $b; + } + + done-testing; + +} |
