diff options
| author | Markus "Holli" Holzer <holli.holzer@gmail.com> | 2020-09-15 01:53:38 +0200 |
|---|---|---|
| committer | Markus "Holli" Holzer <holli.holzer@gmail.com> | 2020-09-15 01:53:38 +0200 |
| commit | a3b8b3243a6d452e2dc159a7b4bf6d5193959689 (patch) | |
| tree | 5c252b1338ecfa148fcefa65f1d502a6b3637347 | |
| parent | 0bccb9f32bc79e49936ca740d327a4978079ebab (diff) | |
| download | perlweeklychallenge-club-a3b8b3243a6d452e2dc159a7b4bf6d5193959689.tar.gz perlweeklychallenge-club-a3b8b3243a6d452e2dc159a7b4bf6d5193959689.tar.bz2 perlweeklychallenge-club-a3b8b3243a6d452e2dc159a7b4bf6d5193959689.zip | |
another variant
| -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..49bde7668b 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 = 0; + reverse @numbers.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 ] } ) } |
