aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-09-13 16:55:29 +0100
committerGitHub <noreply@github.com>2020-09-13 16:55:29 +0100
commit290d1873d16d3a1a54455dd3d059c7f052b67db9 (patch)
tree1eff259529be34963d64aa634a5658fa76e53ca6
parentbc543385aba6f956646d0cbb10a1290c61fdefcc (diff)
parent47f264e529509ce55a975040965bf8526acab5c4 (diff)
downloadperlweeklychallenge-club-290d1873d16d3a1a54455dd3d059c7f052b67db9.tar.gz
perlweeklychallenge-club-290d1873d16d3a1a54455dd3d059c7f052b67db9.tar.bz2
perlweeklychallenge-club-290d1873d16d3a1a54455dd3d059c7f052b67db9.zip
Merge pull request #2271 from andemark/branch-for-challenge-077
a few improvements
-rw-r--r--challenge-077/mark-anderson/raku/ch-1.raku16
-rw-r--r--challenge-077/mark-anderson/raku/ch-2.raku22
2 files changed, 19 insertions, 19 deletions
diff --git a/challenge-077/mark-anderson/raku/ch-1.raku b/challenge-077/mark-anderson/raku/ch-1.raku
index 5505be511f..07c0f969e0 100644
--- a/challenge-077/mark-anderson/raku/ch-1.raku
+++ b/challenge-077/mark-anderson/raku/ch-1.raku
@@ -1,11 +1,13 @@
-unit sub MAIN(UInt $N);
+multi sub MAIN(UInt $N where 0 <= $N <= 2) { say $N }
-my @fib = (1, 1, * + * ... * + * > $N).unique;
+multi sub MAIN(UInt $N) {
+ my @fib = (1, 2, * + * ... $N <= * + *);
-my @results = gather {
- for 2..@fib -> $n {
- take $_ for @fib.combinations($n).grep(*.sum == $N);
+ my @results = gather {
+ for 2..@fib -> $n {
+ take $_ for @fib.combinations($n).grep(*.sum == $N);
+ }
}
-}
-say "$_.join(" + ") = $N" for @results;
+ say "$_.join(" + ") = $N" for @results;
+}
diff --git a/challenge-077/mark-anderson/raku/ch-2.raku b/challenge-077/mark-anderson/raku/ch-2.raku
index 767c3aaf67..4f5bd9e18c 100644
--- a/challenge-077/mark-anderson/raku/ch-2.raku
+++ b/challenge-077/mark-anderson/raku/ch-2.raku
@@ -9,18 +9,16 @@ lonely-X([ <O O X O>,
sub lonely-X(@matrix) {
my @results = gather {
- for ^@matrix -> $r {
- for ^@matrix[0] -> $c {
- if @matrix[$r][$c] eq "X" {
- take [$r, $c] unless any((@matrix[$r-1][$c-1] // q{}),
- (@matrix[$r-1][$c ] // q{}),
- (@matrix[$r-1][$c+1] // q{}),
- (@matrix[$r ][$c-1] // q{}),
- (@matrix[$r ][$c+1] // q{}),
- (@matrix[$r+1][$c+1] // q{}),
- (@matrix[$r+1][$c ] // q{}),
- (@matrix[$r+1][$c-1] // q{})) eq "X";
- }
+ for ^@matrix X ^@matrix[0] -> ($r, $c) {
+ if @matrix[$r][$c] eq "X" {
+ take [$r, $c] unless any((@matrix[$r-1][$c-1] // q{}),
+ (@matrix[$r-1][$c ] // q{}),
+ (@matrix[$r-1][$c+1] // q{}),
+ (@matrix[$r ][$c-1] // q{}),
+ (@matrix[$r ][$c+1] // q{}),
+ (@matrix[$r+1][$c+1] // q{}),
+ (@matrix[$r+1][$c ] // q{}),
+ (@matrix[$r+1][$c-1] // q{})) eq "X";
}
}
}