diff options
| -rw-r--r-- | challenge-078/markus-holzer/raku/ch-1.raku | 14 |
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 ] } ) } |
