diff options
| -rw-r--r-- | challenge-197/wambash/raku/ch-1.raku | 20 | ||||
| -rw-r--r-- | challenge-197/wambash/raku/ch-2.raku | 21 |
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 +} |
