diff options
| author | 冯昶 <fengchang@novel-supertv.com> | 2024-04-22 15:48:28 +0800 |
|---|---|---|
| committer | 冯昶 <fengchang@novel-supertv.com> | 2024-04-22 15:48:28 +0800 |
| commit | e1f7b1c9f6c15f7e39f9a1969cdc08676647ff51 (patch) | |
| tree | fef948082c39ee251dadbcff290262c2b4c522a4 | |
| parent | aed41ed119210ab32e32b82af8039f2c1457726b (diff) | |
| download | perlweeklychallenge-club-e1f7b1c9f6c15f7e39f9a1969cdc08676647ff51.tar.gz perlweeklychallenge-club-e1f7b1c9f6c15f7e39f9a1969cdc08676647ff51.tar.bz2 perlweeklychallenge-club-e1f7b1c9f6c15f7e39f9a1969cdc08676647ff51.zip | |
challenge 266, raku solutions
| -rwxr-xr-x | challenge-266/feng-chang/raku/ch-1.raku | 5 | ||||
| -rwxr-xr-x | challenge-266/feng-chang/raku/ch-2.raku | 12 | ||||
| -rwxr-xr-x | challenge-266/feng-chang/raku/test.raku | 27 |
3 files changed, 44 insertions, 0 deletions
diff --git a/challenge-266/feng-chang/raku/ch-1.raku b/challenge-266/feng-chang/raku/ch-1.raku new file mode 100755 index 0000000000..582dd3dbfc --- /dev/null +++ b/challenge-266/feng-chang/raku/ch-1.raku @@ -0,0 +1,5 @@ +#!/bin/env raku + +unit sub MAIN(Str:D $sent1, Str:D $sent2); + +put ($sent1, $sent2)».words.Slip.Bag.grep(*.value == 1)».key.sort; diff --git a/challenge-266/feng-chang/raku/ch-2.raku b/challenge-266/feng-chang/raku/ch-2.raku new file mode 100755 index 0000000000..1c5d28e155 --- /dev/null +++ b/challenge-266/feng-chang/raku/ch-2.raku @@ -0,0 +1,12 @@ +#!/bin/env raku + +unit sub MAIN(Str:D $str); + +use MONKEY-SEE-NO-EVAL; + +my @mat = EVAL $str; +my \dim = +@mat; +put so (^dim X ^dim).map(-> (\R,\C) { + (@mat[R;C] && (R == C || R + C == dim - 1)) || + !@mat[R;C] +}).all; diff --git a/challenge-266/feng-chang/raku/test.raku b/challenge-266/feng-chang/raku/test.raku new file mode 100755 index 0000000000..e31416a423 --- /dev/null +++ b/challenge-266/feng-chang/raku/test.raku @@ -0,0 +1,27 @@ +#!/bin/env raku + +# The Weekly Challenge 266 +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, Uncommon Words +pwc-test './ch-1.raku', 'Mango is sweet', 'Mango is sour', 'sour sweet', 'Uncommon Words: "Mango is sweet", "Mango is sour" => "sour sweet"'; +pwc-test './ch-1.raku', 'Mango Mango', 'Orange', 'Orange', 'Uncommon Words: "Mango Mongo", "Orange" => "Orange"'; +pwc-test './ch-1.raku', 'Mango is Mango', 'Orange is Orange', '', 'Uncommon Words: "Mango is Mango", "Orange is Orange" => ""'; + +# Task 2, X Matrix +pwc-test './ch-2.raku', '[1,0,0,2],[0,3,4,0],[0,5,6,0],[7,0,0,1]', 'True', + "X Matrix: '[1,0,0,2],[0,3,4,0],[0,5,6,0],[7,0,0,1]' => True"; +pwc-test './ch-2.raku', '[1,2,3],[4,5,6],[7,8,9]', 'False', + "X Matrix: '[1,2,3],[4,5,6],[7,8,9]' => False"; +pwc-test './ch-2.raku', '[1,0,2],[0,3,0],[4,0,5]', 'True', + "X Matrix: '[1,0,2],[0,3,0],[4,0,5]' => True"; |
