aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2023-09-24 14:09:27 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2023-09-24 14:09:27 +0200
commit41d1f965a1027c47b95c4bf24d56d792ae484547 (patch)
treedb2c5f894ff5a2333d6fda35bd2aef934acb9d43
parentba43e97889fede511744942b065a34479b868db4 (diff)
downloadperlweeklychallenge-club-41d1f965a1027c47b95c4bf24d56d792ae484547.tar.gz
perlweeklychallenge-club-41d1f965a1027c47b95c4bf24d56d792ae484547.tar.bz2
perlweeklychallenge-club-41d1f965a1027c47b95c4bf24d56d792ae484547.zip
solutions week 235
-rw-r--r--challenge-235/wambash/raku/ch-1.raku18
-rw-r--r--challenge-235/wambash/raku/ch-2.raku19
2 files changed, 37 insertions, 0 deletions
diff --git a/challenge-235/wambash/raku/ch-1.raku b/challenge-235/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..464d8be03a
--- /dev/null
+++ b/challenge-235/wambash/raku/ch-1.raku
@@ -0,0 +1,18 @@
+#!/usr/bin/env raku
+
+sub remove-one (+@ints) {
+ ^@ints
+ andthen .first: { [<] @ints[0..$_-1, $_+1..*].flat }
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is remove-one(0,2,9,4,6),2;
+ is remove-one(5,1,3,2), Nil;
+ is remove-one(2,2,3), 0;
+ done-testing;
+}
+
+multi MAIN (*@ints) {
+ say remove-one(@ints) !=== Nil
+}
diff --git a/challenge-235/wambash/raku/ch-2.raku b/challenge-235/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..c3d228bf61
--- /dev/null
+++ b/challenge-235/wambash/raku/ch-2.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+
+sub duplicate-zeros (+@ints) {
+ @ints
+ andthen .map: { $_ == 0 ?? |(0,0) !! $_ }\
+ andthen .head: @ints.elems
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is duplicate-zeros(1,0,2,3,0,4,5,0), (1,0,0,2,3,0,0,4);
+ is duplicate-zeros(1,2,3), (1,2,3);
+ is duplicate-zeros(0,3,0,4,5), (0,0,3,0,0);
+ done-testing;
+}
+
+multi MAIN (*@ints) {
+ put duplicate-zeros @ints
+}