aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-07-22 09:45:53 +0100
committerGitHub <noreply@github.com>2024-07-22 09:45:53 +0100
commit0f56bb98c013ee5c8392980e812976ba8fd364b9 (patch)
tree2d076325e05b2ff60d982c1366d8234af3da9c27
parent7aff3f0a8f31701a7c8927fcbc41a9a194e4a157 (diff)
parent4d455ff80276c61c292279f35d90a5bdb24dc33c (diff)
downloadperlweeklychallenge-club-0f56bb98c013ee5c8392980e812976ba8fd364b9.tar.gz
perlweeklychallenge-club-0f56bb98c013ee5c8392980e812976ba8fd364b9.tar.bz2
perlweeklychallenge-club-0f56bb98c013ee5c8392980e812976ba8fd364b9.zip
Merge pull request #10473 from seaker/master
challenge 279, raku solutions
-rwxr-xr-xchallenge-279/feng-chang/raku/ch-1.raku5
-rwxr-xr-xchallenge-279/feng-chang/raku/ch-2.raku5
-rwxr-xr-xchallenge-279/feng-chang/raku/test.raku24
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';