aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-097/stuart-little/raku/ch-1.p67
-rwxr-xr-xchallenge-097/stuart-little/raku/ch-2.p613
2 files changed, 20 insertions, 0 deletions
diff --git a/challenge-097/stuart-little/raku/ch-1.p6 b/challenge-097/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..d0be59447b
--- /dev/null
+++ b/challenge-097/stuart-little/raku/ch-1.p6
@@ -0,0 +1,7 @@
+#!/usr/bin/env perl6
+use v6;
+
+# run <script> <quoted string> <number>
+
+say @*ARGS[0].trans(['A'..'Z'] => ['A'..'Z'].rotate(26-@*ARGS[1].Int))
+
diff --git a/challenge-097/stuart-little/raku/ch-2.p6 b/challenge-097/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..06038a1f63
--- /dev/null
+++ b/challenge-097/stuart-little/raku/ch-2.p6
@@ -0,0 +1,13 @@
+#!/usr/bin/env perl6
+use v6;
+
+# run <script> <binary string> <integer>
+
+sub res(@strs) { zip(@strs).map(-> @s {@s.classify({$_}).max(*.value.elems).value.head}) }
+
+sub toflip(@target,@strs) { @strs.map(-> @s {(@s Z!== @target).grep({$_}).elems}).sum }
+
+my @strs = @*ARGS[0].comb.rotor(@*ARGS[1].Int);
+my @target = res(@strs.List);
+
+say qq|Flip a total number of {toflip(@target,@strs)} positions to get {@target.join} from\n{@strs.map(*.join).join("\n")}|