aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2023-12-31 22:23:38 +0100
committerJan Krňávek <Jan.Krnavek@gmail.com>2023-12-31 22:23:38 +0100
commitbcc43beed33a9d6d049df72ade1bc10e2f2bb717 (patch)
treedbd2b48a9bc8a6901cdad7d49a6b169bc18dd479
parent4dd6ef5012a9af5257cea82c2f027f1639a4750e (diff)
downloadperlweeklychallenge-club-bcc43beed33a9d6d049df72ade1bc10e2f2bb717.tar.gz
perlweeklychallenge-club-bcc43beed33a9d6d049df72ade1bc10e2f2bb717.tar.bz2
perlweeklychallenge-club-bcc43beed33a9d6d049df72ade1bc10e2f2bb717.zip
solution week 249-2 -- mutation in DI-string-match
-rw-r--r--challenge-249/wambash/raku/ch-2.raku21
1 files changed, 21 insertions, 0 deletions
diff --git a/challenge-249/wambash/raku/ch-2.raku b/challenge-249/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..3f55d70bb4
--- /dev/null
+++ b/challenge-249/wambash/raku/ch-2.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/env raku
+
+sub DI-string-match ($s) {
+ my @si = $s.comb;
+ my @perm = 0 .. @si.elems;
+
+ my @b = @si.map: { $_ eq 'I' ?? @perm.shift !! @perm.pop }
+ |@b, @perm.shift
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is-deeply DI-string-match('IDID'), (0,4,1,3,2);
+ is-deeply DI-string-match('III'), (0,1,2,3);
+ is-deeply DI-string-match('DDI'), (3,2,0,1);
+ done-testing;
+}
+
+multi MAIN ($s) {
+ say DI-string-match $s
+}