aboutsummaryrefslogtreecommitdiff
path: root/challenge-078/juliodcs/raku
diff options
context:
space:
mode:
authorJulio <julio.dcs@gmail.com>2020-09-20 22:31:23 +0200
committerJulio <julio.dcs@gmail.com>2020-09-20 22:31:23 +0200
commit6fabd7602c1a36a5d7bc5808e9a230741a9b7f21 (patch)
tree3a3e0ba686b8b10b34443d0609f989e27f73eac6 /challenge-078/juliodcs/raku
parent211fa8fa3233e581f40f5ba09f44b4a052497873 (diff)
downloadperlweeklychallenge-club-6fabd7602c1a36a5d7bc5808e9a230741a9b7f21.tar.gz
perlweeklychallenge-club-6fabd7602c1a36a5d7bc5808e9a230741a9b7f21.tar.bz2
perlweeklychallenge-club-6fabd7602c1a36a5d7bc5808e9a230741a9b7f21.zip
Solution to week 78 by juliodcs
Diffstat (limited to 'challenge-078/juliodcs/raku')
-rw-r--r--challenge-078/juliodcs/raku/ch-1.raku14
-rw-r--r--challenge-078/juliodcs/raku/ch-2.raku9
2 files changed, 23 insertions, 0 deletions
diff --git a/challenge-078/juliodcs/raku/ch-1.raku b/challenge-078/juliodcs/raku/ch-1.raku
new file mode 100644
index 0000000000..3687d224a0
--- /dev/null
+++ b/challenge-078/juliodcs/raku/ch-1.raku
@@ -0,0 +1,14 @@
+sub get-leaders {
+ my \A = ( 9, 10, 7, 5, 6, 1 );
+ sub is-last { $^i == A.elems - 1 }
+ sub current { A[$^i] }
+ sub following { A[$^i + 1] }
+ sub is-leading { current($^i) > following($^i) }
+ sub is-leader { is-last($^i) || is-leading($^i) }
+ sub if-leader { is-leader($^i) ?? current($^i) !! () }
+ sub add-leader { ($^list.flat, if-leader($^pos)).flat }
+
+ A.elems == 0 ?? (0) !! [[&add-leader]] ((), |^A)
+}
+
+say get-leaders;
diff --git a/challenge-078/juliodcs/raku/ch-2.raku b/challenge-078/juliodcs/raku/ch-2.raku
new file mode 100644
index 0000000000..723246e305
--- /dev/null
+++ b/challenge-078/juliodcs/raku/ch-2.raku
@@ -0,0 +1,9 @@
+sub rotate {
+ my \A = (7, 4, 2, 6, 3);
+ my \B = (1, 3, 4);
+ for B -> \rotation {
+ say (|^A).map: { A[ ($^index + rotation) % A.elems ] }
+ }
+}
+
+rotate; \ No newline at end of file