aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-078/markus-holzer/raku/ch-1.raku14
1 files changed, 9 insertions, 5 deletions
diff --git a/challenge-078/markus-holzer/raku/ch-1.raku b/challenge-078/markus-holzer/raku/ch-1.raku
index 29b10e1ca4..369c58db15 100644
--- a/challenge-078/markus-holzer/raku/ch-1.raku
+++ b/challenge-078/markus-holzer/raku/ch-1.raku
@@ -3,14 +3,18 @@ unit sub MAIN( *@numbers where @numbers.all ~~ Int );
say "({ join ", ", leader-elements @numbers })";
sub leader-elements( @stuff ) {
- sub find( $that, *@the-rest ) {
- take $that if $that > all @the-rest;
- find |@the-rest if @the-rest }
+ my $max = -Inf;
+ reverse ( @stuff.reverse.grep: -> $n { $n > $max && ($max = $n) } ) || 0 }
- +@stuff ?? gather find |@stuff !! 0 }
+#sub leader-elements-recursive( @stuff ) {
+# sub find( $that, *@the-rest ) {
+# take $that if $that > all @the-rest;
+# find |@the-rest if @the-rest }
+#
+# +@stuff ?? gather find |@stuff !! 0 }
#
-#sub leader-elements( @A ) {
+#sub leader-elements-filter( @A ) {
# (^@A)
# .grep( -> $i { @A[ $i ] > @A[ $i^..* ].all } )
# .map( -> $i { @A[ $i ] } ) }