diff options
| author | 冯昶 <fengchang@novel-supertv.com> | 2024-07-22 16:41:32 +0800 |
|---|---|---|
| committer | 冯昶 <fengchang@novel-supertv.com> | 2024-07-22 16:41:32 +0800 |
| commit | 4d455ff80276c61c292279f35d90a5bdb24dc33c (patch) | |
| tree | 2072b477e235a051870a4fa15e475156f62d9ea6 | |
| parent | f59c17748d25a6f16a7e64cc3568ae4190f9f3fb (diff) | |
| download | perlweeklychallenge-club-4d455ff80276c61c292279f35d90a5bdb24dc33c.tar.gz perlweeklychallenge-club-4d455ff80276c61c292279f35d90a5bdb24dc33c.tar.bz2 perlweeklychallenge-club-4d455ff80276c61c292279f35d90a5bdb24dc33c.zip | |
challenge 279, raku solutions
| -rwxr-xr-x | challenge-279/feng-chang/raku/ch-1.raku | 5 | ||||
| -rwxr-xr-x | challenge-279/feng-chang/raku/ch-2.raku | 5 | ||||
| -rwxr-xr-x | challenge-279/feng-chang/raku/test.raku | 24 |
3 files changed, 34 insertions, 0 deletions
diff --git a/challenge-279/feng-chang/raku/ch-1.raku b/challenge-279/feng-chang/raku/ch-1.raku new file mode 100755 index 0000000000..29c670a64b --- /dev/null +++ b/challenge-279/feng-chang/raku/ch-1.raku @@ -0,0 +1,5 @@ +#!/bin/env raku + +unit sub MAIN(Str:D $letters, Str:D $weights); + +put ($letters.comb(/<[A..Za..z]>/) Z=> +«$weights.comb(/\d+/)).sort(*.value)».key.join; diff --git a/challenge-279/feng-chang/raku/ch-2.raku b/challenge-279/feng-chang/raku/ch-2.raku new file mode 100755 index 0000000000..bb65f4fbfb --- /dev/null +++ b/challenge-279/feng-chang/raku/ch-2.raku @@ -0,0 +1,5 @@ +#!/bin/env raku + +unit sub MAIN(Str:D $str); + +put $str.lc.comb.grep(<a e i o u>.any) %% 2; diff --git a/challenge-279/feng-chang/raku/test.raku b/challenge-279/feng-chang/raku/test.raku new file mode 100755 index 0000000000..78c592bb31 --- /dev/null +++ b/challenge-279/feng-chang/raku/test.raku @@ -0,0 +1,24 @@ +#!/bin/env raku + +# The Weekly Challenge 279 +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, Sort Letters +pwc-test './ch-1.raku', 'R,E,P,L', '3,2,1,4', 'PERL', 'Sort Letters: <R E P L>, 3,2,1,4 => PERL'; +pwc-test './ch-1.raku', 'A,U,R,K', '2,4,1,3', 'RAKU', 'Sort Letters: <A U R K>, 2,4,1,3 => RAKU'; +pwc-test './ch-1.raku', 'O,H,Y,N,P,T', '5,4,2,6,1,3', 'PYTHON', 'Sort Letters: <O H Y N P T>, 5,4,2,6,1,3 => PYTHON'; + +# Task 2, Split String +pwc-test './ch-2.raku', 'perl', 'False', 'Split String: "perl" => False'; +pwc-test './ch-2.raku', 'book', 'True', 'Split String: "book" => True'; +pwc-test './ch-2.raku', 'good morning', 'True', 'Split String: "good morning" => True'; |
