aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-05-31 21:32:53 +0100
committerGitHub <noreply@github.com>2021-05-31 21:32:53 +0100
commit5339668b0eb9fc3dc3de93badfaea9ffaa2ecd0c (patch)
treed71afbd3818931851eafa60ae5a07a23640f877b
parent9d6b90d66f8a2efda4bd7745e1305abe83b1ab4f (diff)
parent2ae4c72984a919f2ce24c952667492b202e298a1 (diff)
downloadperlweeklychallenge-club-5339668b0eb9fc3dc3de93badfaea9ffaa2ecd0c.tar.gz
perlweeklychallenge-club-5339668b0eb9fc3dc3de93badfaea9ffaa2ecd0c.tar.bz2
perlweeklychallenge-club-5339668b0eb9fc3dc3de93badfaea9ffaa2ecd0c.zip
Merge pull request #4176 from stuart-little/stuart-little_115_raku
1st commit on 115_raku
-rwxr-xr-xchallenge-115/stuart-little/raku/ch-1.p615
-rwxr-xr-xchallenge-115/stuart-little/raku/ch-2.p68
2 files changed, 23 insertions, 0 deletions
diff --git a/challenge-115/stuart-little/raku/ch-1.p6 b/challenge-115/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..5a5044ab4e
--- /dev/null
+++ b/challenge-115/stuart-little/raku/ch-1.p6
@@ -0,0 +1,15 @@
+#!/usr/bin/env perl6
+use v6;
+
+# run <script> <space-separated strings>
+
+sub canChain(@words,$start,$end) {
+ (! @words.elems) && return 0;
+ @words.elems == 1 && do {
+ return (@words[0].substr(0,1) eq $start && @words[0].substr(*-1) eq $end).Int;
+ };
+ my @startIdxs = @words.keys.grep({ @words[$_].substr(0,1) eq $start });
+ return @startIdxs.map({ canChain(@words[(@words.keys (-) $_).keys.sort], substr(@words[$_],*-1), $end) }).any.Bool.Int;
+}
+
+((@*ARGS.elems < 2) ?? (0) !! (canChain(@*ARGS[1..*],substr(@*ARGS[0],*-1),substr(@*ARGS[0],0,1)))).say;
diff --git a/challenge-115/stuart-little/raku/ch-2.p6 b/challenge-115/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..f563f38fc7
--- /dev/null
+++ b/challenge-115/stuart-little/raku/ch-2.p6
@@ -0,0 +1,8 @@
+#!/usr/bin/env perl6
+use v6;
+
+# run <script> <space-separated digits>
+
+my $attemptedOut = S/(.)(<[13579]>*)$/$1$0/ with @*ARGS.sort({ $^b leg $^a }).join("");
+say(($attemptedOut ~~ m/<[02468]>$/) ?? ($attemptedOut) !! ("No even digits.."));
+