diff options
| -rw-r--r-- | challenge-078/markus-holzer/raku/ch-1.raku | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/challenge-078/markus-holzer/raku/ch-1.raku b/challenge-078/markus-holzer/raku/ch-1.raku index 63b575edc1..8afa6dcf2b 100644 --- a/challenge-078/markus-holzer/raku/ch-1.raku +++ b/challenge-078/markus-holzer/raku/ch-1.raku @@ -1,10 +1,16 @@ unit sub MAIN( *@A where @A.all ~~ Int ); -say @A.&leader-elements.join: ", "; +say "({ join ", ", leader-elements( @A ) })"; -multi leader-elements( @A ) { - (^@A) - .grep( -> $i { @A[ $i ] > @A[ $i^..* ].all } ) - .map( -> $i { @A[ $i ] } ) } +sub leader-elements( @stuff ) { + sub find( $that, *@the-rest ) { + take $that if $that > all @the-rest; + find |@the-rest if @the-rest } -multi leader-elements( @A where +@A == 0 ) { 0 }
\ No newline at end of file + +@stuff ?? gather find |@stuff !! 0 } + +# +#sub leader-elements( @A ) { +# (^@A) +# .grep( -> $i { @A[ $i ] > @A[ $i^..* ].all } ) +# .map( -> $i { @A[ $i ] } ) } |
