aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-09-22 23:45:06 +0100
committerGitHub <noreply@github.com>2025-09-22 23:45:06 +0100
commitb63485b2cf13ec6cc84179f8dce0da55dafca90d (patch)
tree59d0a28f09babdc8ed8b97857bf43eac0332c808
parentef8d29d67187f9e552bd9e4b1cbadde8107bc791 (diff)
parentf75d5a30f305912f29b0b50ef806db3177b71b0b (diff)
downloadperlweeklychallenge-club-b63485b2cf13ec6cc84179f8dce0da55dafca90d.tar.gz
perlweeklychallenge-club-b63485b2cf13ec6cc84179f8dce0da55dafca90d.tar.bz2
perlweeklychallenge-club-b63485b2cf13ec6cc84179f8dce0da55dafca90d.zip
Merge pull request #12712 from seaker/master
challenge 340, raku solutions
-rwxr-xr-xchallenge-340/feng-chang/raku/ch-1.raku6
-rwxr-xr-xchallenge-340/feng-chang/raku/ch-2.raku5
-rwxr-xr-xchallenge-340/feng-chang/raku/test.raku28
3 files changed, 39 insertions, 0 deletions
diff --git a/challenge-340/feng-chang/raku/ch-1.raku b/challenge-340/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..88a82f9a9e
--- /dev/null
+++ b/challenge-340/feng-chang/raku/ch-1.raku
@@ -0,0 +1,6 @@
+#!/bin/env raku
+
+unit sub MAIN(Str:D $s is copy);
+
+$s .= subst(/(.)$0/) while $s.contains(/(.)$0/);
+put $s;
diff --git a/challenge-340/feng-chang/raku/ch-2.raku b/challenge-340/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..37a7400b5a
--- /dev/null
+++ b/challenge-340/feng-chang/raku/ch-2.raku
@@ -0,0 +1,5 @@
+#!/bin/env raku
+
+unit sub MAIN(Str:D $msg);
+
+put so [<] $msg.comb(/\d+/);
diff --git a/challenge-340/feng-chang/raku/test.raku b/challenge-340/feng-chang/raku/test.raku
new file mode 100755
index 0000000000..20ad3c057c
--- /dev/null
+++ b/challenge-340/feng-chang/raku/test.raku
@@ -0,0 +1,28 @@
+#!/bin/env raku
+
+# The Weekly Challenge 340
+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, Duplicate Removals
+pwc-test './ch-1.raku', 'abbaca', 'ca', 'Duplicate Removals: abbaca => ca';
+pwc-test './ch-1.raku', 'azxxzy', 'ay', 'Duplicate Removals: azxxzy => ay';
+pwc-test './ch-1.raku', 'aaaaaaaa', '', 'Duplicate Removals: aaaaaaaa => ""';
+pwc-test './ch-1.raku', 'aabccba', 'a', 'Duplicate Removals: aabccba => a';
+pwc-test './ch-1.raku', 'abcddcba', '', 'Duplicate Removals: abcddcba => ""';
+
+# Task 2, Ascending Numbers
+pwc-test './ch-2.raku', 'The cat has 3 kittens 7 toys 10 beds', 'True', 'Ascending Numbers: "The cat has 3 kittens 7 toys 10 beds" => true';
+pwc-test './ch-2.raku', 'Alice bought 5 apples 2 oranges 9 bananas', 'False', 'Ascending Numbers: "Alice bought 5 apples 2 oranges 9 bananas" => false';
+pwc-test './ch-2.raku', 'I ran 1 mile 2 days 3 weeks 4 months', 'True', 'Ascending Numbers: "I ran 1 mile 2 days 3 weeks 4 months" => true';
+pwc-test './ch-2.raku', 'Bob has 10 cars 10 bikes', 'False', 'Ascending Numbers: "Bob has 10 cars 10 bikes" => false';
+pwc-test './ch-2.raku', 'Zero is 0 one is 1 two is 2', 'True', 'Ascending Numbers: "Zero is 0 one is 1 two is 2" => Ture';