aboutsummaryrefslogtreecommitdiff
path: root/challenge-078
diff options
context:
space:
mode:
authorwambash <wamba@centrum.cz>2020-09-18 10:38:09 +0200
committerwambash <wamba@centrum.cz>2020-09-18 10:38:09 +0200
commit3d426f6a39bc7e5bafa32c4e9eb7d986061c2b67 (patch)
tree80d192fd1bf1fa4f1ed6cabf606fa7ea9df72ca9 /challenge-078
parentb30c2f44a1f433c7eb1ee6eacf8fbba508d69fd3 (diff)
downloadperlweeklychallenge-club-3d426f6a39bc7e5bafa32c4e9eb7d986061c2b67.tar.gz
perlweeklychallenge-club-3d426f6a39bc7e5bafa32c4e9eb7d986061c2b67.tar.bz2
perlweeklychallenge-club-3d426f6a39bc7e5bafa32c4e9eb7d986061c2b67.zip
Solutions challenge 078
Diffstat (limited to 'challenge-078')
-rwxr-xr-xchallenge-078/wambash/raku/ch-1.raku21
-rwxr-xr-xchallenge-078/wambash/raku/ch-2.raku19
2 files changed, 40 insertions, 0 deletions
diff --git a/challenge-078/wambash/raku/ch-1.raku b/challenge-078/wambash/raku/ch-1.raku
new file mode 100755
index 0000000000..7e518ce795
--- /dev/null
+++ b/challenge-078/wambash/raku/ch-1.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/env raku
+
+multi leader-element ( +@a, :$reverse! where *.not ) {
+ @a
+ andthen [\max] $_
+ andthen .squish
+}
+
+multi leader-element ( +@a, :$reverse = True ) {
+ @a
+ andthen .reverse
+ andthen *.&leader-element: :!reverse
+ andthen .reverse
+}
+
+multi MAIN ( :$test! ) {
+ use Test;
+ is leader-element(9, 10, 7, 5, 6, 1), (10, 7, 6, 1);
+ is leader-element(3, 4, 5), (5,);
+ done-testing;
+}
diff --git a/challenge-078/wambash/raku/ch-2.raku b/challenge-078/wambash/raku/ch-2.raku
new file mode 100755
index 0000000000..66ae200747
--- /dev/null
+++ b/challenge-078/wambash/raku/ch-2.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/env raku
+
+sub left-rotate ( @a, @b ) {
+ @b.map: { @a.rotate: $_ }
+}
+
+multi MAIN ( :$test! ) {
+ use Test;
+ cmp-ok left-rotate( <10 20 30 40 50>, <3 4> ),'~~', (<40 50 10 20 30>, <50 10 20 30 40>);
+ cmp-ok
+ left-rotate( <7 4 2 6 3>, <1 3 4> ),
+ '~~',
+ (
+ <4 2 6 3 7>,
+ <6 3 7 4 2>,
+ <3 7 4 2 6>,
+ );
+ done-testing;
+}