From d6f64616e3ca06c6987b701c2986349b38be603e Mon Sep 17 00:00:00 2001 From: 冯昶 Date: Mon, 2 Jun 2025 22:06:37 +0800 Subject: challenge 324, raku solutions --- challenge-324/feng-chang/raku/ch-1.raku | 6 ++++++ challenge-324/feng-chang/raku/ch-2.raku | 5 +++++ challenge-324/feng-chang/raku/test.raku | 24 ++++++++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100755 challenge-324/feng-chang/raku/ch-1.raku create mode 100755 challenge-324/feng-chang/raku/ch-2.raku create mode 100755 challenge-324/feng-chang/raku/test.raku 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'; -- cgit