aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2023-01-01 23:12:48 +0000
committerGitHub <noreply@github.com>2023-01-01 23:12:48 +0000
commit56ea8858e37878adeaf4f8a2a7835d7bc4607b8d (patch)
tree8d4662cf55e06a8af4a39ec8fd6c53396e7da629
parent1bf0af88b12558a237b14dc0cbdf5eef7cedf1c2 (diff)
parent5e5d9bdd0315c1e6478e91930e6c6726a1f55793 (diff)
downloadperlweeklychallenge-club-56ea8858e37878adeaf4f8a2a7835d7bc4607b8d.tar.gz
perlweeklychallenge-club-56ea8858e37878adeaf4f8a2a7835d7bc4607b8d.tar.bz2
perlweeklychallenge-club-56ea8858e37878adeaf4f8a2a7835d7bc4607b8d.zip
Merge pull request #7333 from wambash/challenge-week-197
solutions week 197
-rw-r--r--challenge-197/wambash/raku/ch-1.raku20
-rw-r--r--challenge-197/wambash/raku/ch-2.raku21
2 files changed, 41 insertions, 0 deletions
diff --git a/challenge-197/wambash/raku/ch-1.raku b/challenge-197/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..b5bf3924a2
--- /dev/null
+++ b/challenge-197/wambash/raku/ch-1.raku
@@ -0,0 +1,20 @@
+#!/usr/bin/env raku
+
+sub move-zero (+@list) {
+ @list
+ andthen .classify: * == 0
+ andthen .sort
+ andthen .map: |*.value
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is move-zero(1, 0, 3, 0, 0, 5),(1, 3, 5, 0, 0, 0);
+ is move-zero(1, 6, 4), (1, 6, 4);
+ is move-zero(0, 1, 0, 2, 0), (1, 2, 0, 0, 0);
+ done-testing;
+}
+
+multi MAIN (*@list) {
+ put move-zero @list
+}
diff --git a/challenge-197/wambash/raku/ch-2.raku b/challenge-197/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..dc59049a1c
--- /dev/null
+++ b/challenge-197/wambash/raku/ch-2.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/env raku
+
+sub wiggle-sort (+@list) {
+ @list
+ andthen .sort
+ andthen .reverse
+ andthen roundrobin .[((.elems div 2) .. *),^(.elems div 2) ], :slip
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is wiggle-sort(1,5,1,1,6,4), (1,6,1,5,1,4);
+ is wiggle-sort(1,3,2,2,3,1), (2,3,1,3,1,2);
+ todo 'doesn\'t work for some list with odd number of elemnts';
+ is wiggle-sort(1,5,5), (5,1,5);
+ done-testing;
+}
+
+multi MAIN (*@list) {
+ put wiggle-sort @list
+}