diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-04-09 10:49:32 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-09 10:49:32 +0100 |
| commit | 0cd22fef3ec226bb7ee56c0d4a4d82e0c0b5d792 (patch) | |
| tree | af74c4ccbc0d35d0a9d811b7911160f7f139666c | |
| parent | 02def2510a4c5e4f024f0ad0e4cbdac9a1e420fb (diff) | |
| parent | 5f944d35e5479ea32a57fc91c85d4c057e8f67cd (diff) | |
| download | perlweeklychallenge-club-0cd22fef3ec226bb7ee56c0d4a4d82e0c0b5d792.tar.gz perlweeklychallenge-club-0cd22fef3ec226bb7ee56c0d4a4d82e0c0b5d792.tar.bz2 perlweeklychallenge-club-0cd22fef3ec226bb7ee56c0d4a4d82e0c0b5d792.zip | |
Merge pull request #9894 from seaker/master
challenge 264, raku solutions
| -rwxr-xr-x | challenge-264/feng-chang/raku/ch-1.raku | 7 | ||||
| -rwxr-xr-x | challenge-264/feng-chang/raku/ch-2.raku | 11 | ||||
| -rwxr-xr-x | challenge-264/feng-chang/raku/test.raku | 27 |
3 files changed, 45 insertions, 0 deletions
diff --git a/challenge-264/feng-chang/raku/ch-1.raku b/challenge-264/feng-chang/raku/ch-1.raku new file mode 100755 index 0000000000..c8bb36b262 --- /dev/null +++ b/challenge-264/feng-chang/raku/ch-1.raku @@ -0,0 +1,7 @@ +#!/bin/env raku + +unit sub MAIN(Str:D $s); + +my %s = $s.comb.Set; +my \gel = ('A'..'Z').grep({ %s{.lc} and %s{$_} }).max; +put gel ne '-Inf' ?? gel !! ''; diff --git a/challenge-264/feng-chang/raku/ch-2.raku b/challenge-264/feng-chang/raku/ch-2.raku new file mode 100755 index 0000000000..93b18879a0 --- /dev/null +++ b/challenge-264/feng-chang/raku/ch-2.raku @@ -0,0 +1,11 @@ +#!/bin/env raku + +unit sub MAIN(Str $source, Str:D $indices); + +use MONKEY-SEE-NO-EVAL; + +my @src = EVAL "[$source]"; +my @ndx = EVAL "[$indices]"; +my @tgt; +@tgt.splice(@ndx[$_], 0, @src[$_]) for ^+@src; +put @tgt; diff --git a/challenge-264/feng-chang/raku/test.raku b/challenge-264/feng-chang/raku/test.raku new file mode 100755 index 0000000000..1f5b291b7f --- /dev/null +++ b/challenge-264/feng-chang/raku/test.raku @@ -0,0 +1,27 @@ +#!/bin/env raku + +# The Weekly Challenge 264 +use Test; + +sub pwc-test(Str:D $script, Bool :$deeply? = False, *@input) { + my ($expect, $assertion) = @input.splice(*-2, 2); + my $p = run $script, |@input, :out; + if $deeply { + is-deeply $p.out.slurp(:close).chomp.words.Bag, $expect, $assertion; + } else { + is $p.out.slurp(:close).chomp, $expect, $assertion; + } +} + +# Task 1, Greatest English Letter +pwc-test './ch-1.raku', 'PeRlwEeKLy', 'L', 'Greatest English Letter: PeRlwEeKLy => L'; +pwc-test './ch-1.raku', 'ChaLlenge', 'L', 'Greatest English Letter: ChaLlenge => L'; +pwc-test './ch-1.raku', 'The', '', 'Greatest English Letter: The => ""'; + +# Task 2, Target Array +pwc-test './ch-2.raku', '0,1,2,3,4', '0,1,2,2,1', '0 4 1 3 2', + 'Target Array: @source=(0,1,2,3,4), @indices= (0,1,2,2,1) => (0,4,1,3,2)'; +pwc-test './ch-2.raku', '1,2,3,4,0', '0,1,2,3,0', '0 1 2 3 4', + 'Target Array: @source=(1,2,3,4,0), @indices= (0,1,2,3,0) => (0,1,2,3,4)'; +pwc-test './ch-2.raku', 1, 0, '1', + 'Target Array: @source=(1), @indices= (0) => (1)'; |
