aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2023-07-10 18:13:14 +0800
committer冯昶 <fengchang@novel-supertv.com>2023-07-10 18:13:14 +0800
commit7bce92dafd4a464bed211045fbeba33130f60dd8 (patch)
tree9d884ff7859024223625e9d3d229839459d72a66
parent75e4052bf46c76dc87c719ded35e62beb1031c4c (diff)
downloadperlweeklychallenge-club-7bce92dafd4a464bed211045fbeba33130f60dd8.tar.gz
perlweeklychallenge-club-7bce92dafd4a464bed211045fbeba33130f60dd8.tar.bz2
perlweeklychallenge-club-7bce92dafd4a464bed211045fbeba33130f60dd8.zip
challenge #225, raku solutions
-rwxr-xr-xchallenge-225/feng-chang/raku/ch-1.raku5
-rwxr-xr-xchallenge-225/feng-chang/raku/ch-2.raku8
-rwxr-xr-xchallenge-225/feng-chang/raku/test.raku31
3 files changed, 44 insertions, 0 deletions
diff --git a/challenge-225/feng-chang/raku/ch-1.raku b/challenge-225/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..10c62be03c
--- /dev/null
+++ b/challenge-225/feng-chang/raku/ch-1.raku
@@ -0,0 +1,5 @@
+#!/bin/env raku
+
+unit sub MAIN(*@sentences);
+
+put @sentences».words».elems.max;
diff --git a/challenge-225/feng-chang/raku/ch-2.raku b/challenge-225/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..37f7d73e32
--- /dev/null
+++ b/challenge-225/feng-chang/raku/ch-2.raku
@@ -0,0 +1,8 @@
+#!/bin/env raku
+
+unit sub MAIN(*@N);
+
+my @left = 0, |([\+] @N.head(*-1));
+my @right = (0, |([\+] @N.reverse.head(*-1))).reverse;
+
+put (^+@N).map({ abs(@left[$_] - @right[$_]) }).join(', ');
diff --git a/challenge-225/feng-chang/raku/test.raku b/challenge-225/feng-chang/raku/test.raku
new file mode 100755
index 0000000000..6429f14314
--- /dev/null
+++ b/challenge-225/feng-chang/raku/test.raku
@@ -0,0 +1,31 @@
+#!/bin/env raku
+
+# The Weekly Challenge 225
+use Test;
+
+sub pwc-test(Str:D $script, *@input) {
+ my ($expect, $assertion) = @input.splice(*-2, 2);
+ my $p = run $script, |@input, :out;
+ is $p.out.slurp(:close).chomp, $expect, $assertion;
+}
+
+# Task 1, Max Words
+pwc-test './ch-1.raku',
+ "Perl and Raku belong to the same family.",
+ "I love Perl.",
+ "The Perl and Raku Conference.",
+ 8,
+ 'Max Words: example 1, output: 8';
+pwc-test './ch-1.raku',
+ "The Weekly Challenge.",
+ "Python is the most popular guest language.",
+ "Team PWC has over 300 members.",
+ 7,
+ 'Max Words: example 2, output: 7';
+
+# Task 2, Left Right Sum Diff
+pwc-test './ch-2.raku', |<10 4 8 3>, '15, 1, 11, 22', 'Left Right Sum Diff: (10, 4, 8, 3) => (15, 1, 11, 22)';
+pwc-test './ch-2.raku', 0, '0', 'Left Right Sum Diff: (0) => (0)';
+pwc-test './ch-2.raku', |<1 2 3 4 5>, '14, 11, 6, 1, 10', 'Left Right Sum Diff: (1, 2, 3, 4, 5) => (14, 11, 6, 1, 10)';
+
+done-testing;