aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-06-15 20:21:03 +0100
committerGitHub <noreply@github.com>2021-06-15 20:21:03 +0100
commit26edcfc1d15cc74916d0e2a0f7001b17647b4f46 (patch)
tree24c2bb8248fe35becc41e699b1918364068f38d7
parentd499d2f0336c1c605666703aaea8427f1d4815de (diff)
parent3bd7315931c1dc8eca44fc4b86a77909a152de10 (diff)
downloadperlweeklychallenge-club-26edcfc1d15cc74916d0e2a0f7001b17647b4f46.tar.gz
perlweeklychallenge-club-26edcfc1d15cc74916d0e2a0f7001b17647b4f46.tar.bz2
perlweeklychallenge-club-26edcfc1d15cc74916d0e2a0f7001b17647b4f46.zip
Merge pull request #4258 from stuart-little/stuart-little_117_raku
1st commit on 117_raku
-rwxr-xr-xchallenge-117/stuart-little/raku/ch-1.raku23
-rwxr-xr-xchallenge-117/stuart-little/raku/ch-2.raku22
2 files changed, 45 insertions, 0 deletions
diff --git a/challenge-117/stuart-little/raku/ch-1.raku b/challenge-117/stuart-little/raku/ch-1.raku
new file mode 100755
index 0000000000..cb7fd71738
--- /dev/null
+++ b/challenge-117/stuart-little/raku/ch-1.raku
@@ -0,0 +1,23 @@
+#!/usr/bin/env raku
+use v6;
+
+# run <script> <path-to-file>
+
+my @lines = (@*ARGS.elems) ?? (@*ARGS[0].IO.lines) !! ($=finish.lines);
+((@lines.elems+1)*(@lines.elems + 2)/2 - @lines.map({ /^<-[\d]>*(\d+)/; $0.Int }).sum ).say;
+
+=finish
+11, Line Eleven
+1, Line one
+9, Line Nine
+13, Line Thirteen
+2, Line two
+6, Line Six
+8, Line Eight
+10, Line Ten
+7, Line Seven
+4, Line Four
+14, Line Fourteen
+3, Line three
+15, Line Fifteen
+5, Line Five
diff --git a/challenge-117/stuart-little/raku/ch-2.raku b/challenge-117/stuart-little/raku/ch-2.raku
new file mode 100755
index 0000000000..9368307c84
--- /dev/null
+++ b/challenge-117/stuart-little/raku/ch-2.raku
@@ -0,0 +1,22 @@
+#!/usr/bin/env raku
+use v6;
+
+# run <script> <number>
+
+my @memo=[[''],['R','LH']];
+
+sub mkPaths($size) {
+ ($size >= @memo.elems) && do {
+ my @res = mkPaths($size-1).map({ 'R' ~ $_ }).Array;
+ for (0..^$size) -> $nr {
+ my @gluedPairs = (mkPaths($nr).Seq X mkPaths($size -1 - $nr).Seq).map({ 'L' ~ $_.[0] ~ 'H' ~ $_.[1] });
+ @res.push(|@gluedPairs);
+ }
+ @memo.push(@res.Array);
+ };
+ return @memo[$size];
+}
+
+for (mkPaths(@*ARGS[0].Int).Seq) {
+ .say;
+}