aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2025-06-02 22:06:37 +0800
committer冯昶 <fengchang@novel-supertv.com>2025-06-02 22:06:37 +0800
commitd6f64616e3ca06c6987b701c2986349b38be603e (patch)
treef411596a1887bb5825c9d809d5f679d199b19138
parentb0159e77cc4e56da3a5a1c86d5769c652bcc887e (diff)
downloadperlweeklychallenge-club-d6f64616e3ca06c6987b701c2986349b38be603e.tar.gz
perlweeklychallenge-club-d6f64616e3ca06c6987b701c2986349b38be603e.tar.bz2
perlweeklychallenge-club-d6f64616e3ca06c6987b701c2986349b38be603e.zip
challenge 324, raku solutions
-rwxr-xr-xchallenge-324/feng-chang/raku/ch-1.raku6
-rwxr-xr-xchallenge-324/feng-chang/raku/ch-2.raku5
-rwxr-xr-xchallenge-324/feng-chang/raku/test.raku24
3 files changed, 35 insertions, 0 deletions
diff --git a/challenge-324/feng-chang/raku/ch-1.raku b/challenge-324/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..998a9eb03e
--- /dev/null
+++ b/challenge-324/feng-chang/raku/ch-1.raku
@@ -0,0 +1,6 @@
+#!/bin/env raku
+
+unit sub MAIN(*@ints);
+
+my (\row, \col) = @ints.splice(*-2);
+put (+«@ints).rotor(col)».Array.raku;
diff --git a/challenge-324/feng-chang/raku/ch-2.raku b/challenge-324/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..930a2e6d47
--- /dev/null
+++ b/challenge-324/feng-chang/raku/ch-2.raku
@@ -0,0 +1,5 @@
+#!/bin/env raku
+
+unit sub MAIN(*@ints);
+
+put @ints.combinations.map({ [+^] $_ }).sum;
diff --git a/challenge-324/feng-chang/raku/test.raku b/challenge-324/feng-chang/raku/test.raku
new file mode 100755
index 0000000000..c7762a0e54
--- /dev/null
+++ b/challenge-324/feng-chang/raku/test.raku
@@ -0,0 +1,24 @@
+#!/bin/env raku
+
+# The Weekly Challenge 324
+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, 2D Array
+pwc-test './ch-1.raku', <1 2 3 4>, 2, 2, '([1, 2], [3, 4])', '2D Array: @ints=(1,2,3,4), $r=2, $c=2 => ([1, 2], [3, 4])';
+pwc-test './ch-1.raku', <1 2 3>, 1, 3, '([1, 2, 3],)', '2D Array: @ints=(1,2,3), $r=1, $c=3 => ([1, 2, 3])';
+pwc-test './ch-1.raku', <1 2 3 4>, 4, 1, '([1], [2], [3], [4])', '2D Array: @ints=(1,2,3,4), $r=4, $c=1 => ([1], [2], [3], [4])';
+
+# Task 2, Total XOR
+pwc-test './ch-2.raku', <1 3>, 6, 'Total XOR: (1,3) => 6';
+pwc-test './ch-2.raku', <5 1 6>, 28, 'Total XOR: (5,1,6) => 28';
+pwc-test './ch-2.raku', <3 4 5 6 7 8>, 480, 'Total XOR: (3,4,5,6,7,8) => 480';