aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2023-07-23 14:35:56 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2023-07-23 14:35:56 +0200
commitbbb9c5cbddec7d283f7bd6a67dbef1f9e22c3c39 (patch)
treef82c1ab794d647adb386308872919848741048e4
parentc2f66544f55e318c1d8ec8d7f169a8e7f1a11acc (diff)
downloadperlweeklychallenge-club-bbb9c5cbddec7d283f7bd6a67dbef1f9e22c3c39.tar.gz
perlweeklychallenge-club-bbb9c5cbddec7d283f7bd6a67dbef1f9e22c3c39.tar.bz2
perlweeklychallenge-club-bbb9c5cbddec7d283f7bd6a67dbef1f9e22c3c39.zip
solutions week 226
-rw-r--r--challenge-226/wambash/raku/ch-1.raku19
-rw-r--r--challenge-226/wambash/raku/ch-2.raku20
2 files changed, 39 insertions, 0 deletions
diff --git a/challenge-226/wambash/raku/ch-1.raku b/challenge-226/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..bc60f6a71b
--- /dev/null
+++ b/challenge-226/wambash/raku/ch-1.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+
+sub shuffle-string ($string, +@indices) {
+ @indices Z=> $string.comb
+ andthen .sort
+ andthen .map: *.value
+ andthen .join
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is shuffle-string('lacelengh', 3,2,0,5,4,8,6,7,1), 'challenge';
+ is shuffle-string('rulepark',4,7,3,1,0,5,2,6), 'perlraku';
+ done-testing;
+}
+
+multi MAIN ($string, +@indices) {
+ say shuffle-string $string, @indices
+}
diff --git a/challenge-226/wambash/raku/ch-2.raku b/challenge-226/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..69c0afaf22
--- /dev/null
+++ b/challenge-226/wambash/raku/ch-2.raku
@@ -0,0 +1,20 @@
+#!/usr/bin/env raku
+
+sub zero-array (+ints) {
+ ints
+ andthen .grep: * !== 0
+ andthen .unique
+ andthen .elems
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is zero-array(1,5,0,3,5),3;
+ is zero-array(0),0;
+ is zero-array(2,1,4,0,3),4;
+ done-testing;
+}
+
+multi MAIN (+ints) {
+ say zero-array ints
+}