diff options
| author | Markus "Holli" Holzer <holli.holzer@gmail.com> | 2020-09-13 06:08:47 +0200 |
|---|---|---|
| committer | Markus "Holli" Holzer <holli.holzer@gmail.com> | 2020-09-13 06:08:47 +0200 |
| commit | 0a43b3daca0f6b7b6cfaef12371256a84b1b9eb2 (patch) | |
| tree | 753620306ed5159aaf6d62bec8a98c81ffb7ece3 /challenge-077 | |
| parent | fb891f3b1bbcd2da4c9399809737297ae4a9b087 (diff) | |
| download | perlweeklychallenge-club-0a43b3daca0f6b7b6cfaef12371256a84b1b9eb2.tar.gz perlweeklychallenge-club-0a43b3daca0f6b7b6cfaef12371256a84b1b9eb2.tar.bz2 perlweeklychallenge-club-0a43b3daca0f6b7b6cfaef12371256a84b1b9eb2.zip | |
tabs???
Diffstat (limited to 'challenge-077')
| -rw-r--r-- | challenge-077/markus-holzer/raku/ch-1.raku | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/challenge-077/markus-holzer/raku/ch-1.raku b/challenge-077/markus-holzer/raku/ch-1.raku index 054dd51cb9..44b5af60d4 100644 --- a/challenge-077/markus-holzer/raku/ch-1.raku +++ b/challenge-077/markus-holzer/raku/ch-1.raku @@ -6,37 +6,37 @@ my $start = now; with my @combinatons = gather combine zeckendorf $N { - say @combinatons.map( *.join( "," ) ).join( "\n" ) if $v; - say "# of combinations: {+@combinatons}"; - say "Calculated in { sprintf "%.3f", now - $start } seconds" + say @combinatons.map( *.join( "," ) ).join( "\n" ) if $v; + say "# of combinations: {+@combinatons}"; + say "Calculated in { sprintf "%.3f", now - $start } seconds" } sub combine( @Z ) is cached { - my &valid = -> $result { - $result.elems == $result.unique.elems && $result !~~ @Z }; + my &valid = -> $result { + $result.elems == $result.unique.elems && $result !~~ @Z }; - my &insert = -> $where, $what { - my @x = @Z.clone; @x.splice( $where, 1, |$what ); @x }; + my &insert = -> $where, $what { + my @x = @Z.clone; @x.splice( $where, 1, |$what ); @x }; - take @Z; + take @Z; - sink @Z - .map( &zeckendorf ) - .kv.map( &insert ) - .grep( &valid ) - .map( &combine ) + sink @Z + .map( &zeckendorf ) + .kv.map( &insert ) + .grep( &valid ) + .map( &combine ) } sub zeckendorf( $n is copy ) is cached { - state @fib = [1, 1, * + * ... * > $N]; + state @fib = [1, 1, * + * ... * > $N]; - my &do-zeckendorf = { - eager gather for @fib.grep( * < $n ).reverse { - if $_ <= $n { - take $_; - $n -= $_; }}} + my &do-zeckendorf = { + eager gather for @fib.grep( * < $n ).reverse { + if $_ <= $n { + take $_; + $n -= $_; }}} - $n == 1 ?? 1.List !! do-zeckendorf + $n == 1 ?? 1.List !! do-zeckendorf }
\ No newline at end of file |
