aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Krňávek <Jan.Krnavek@gmail.com>2020-09-13 09:15:14 +0200
committerJan Krňávek <Jan.Krnavek@gmail.com>2020-09-13 09:15:14 +0200
commit5a0cd8b82adc82d7ea5c0c147772b7324986e115 (patch)
tree6aa7088d0ba3bd9bc1ec4ddf50ac6a9f13abef8b
parent6e5067e80d4ba742f4b5085316a103a4a59f9612 (diff)
downloadperlweeklychallenge-club-5a0cd8b82adc82d7ea5c0c147772b7324986e115.tar.gz
perlweeklychallenge-club-5a0cd8b82adc82d7ea5c0c147772b7324986e115.tar.bz2
perlweeklychallenge-club-5a0cd8b82adc82d7ea5c0c147772b7324986e115.zip
solution week 077-1
-rwxr-xr-xchallenge-077/wambash/raku/ch-1.raku11
1 files changed, 6 insertions, 5 deletions
diff --git a/challenge-077/wambash/raku/ch-1.raku b/challenge-077/wambash/raku/ch-1.raku
index 0d3b0934b6..49444f5912 100755
--- a/challenge-077/wambash/raku/ch-1.raku
+++ b/challenge-077/wambash/raku/ch-1.raku
@@ -1,19 +1,20 @@
#!/usr/bin/env raku
-constant @fib := 1,2 , * + * ... *;
+constant @fib := 1, 2, * + * ... *;
multi iter ( Capture $c ( :$sum, :@pos, :@used ) ) {
\( sum => $sum + @pos.head, pos => @pos.skip, used => (|@used, @pos.head) ),
- \( |$c, pos => @pos.skip)
+ \( |$c, pos => @pos.skip)
};
-multi iter ( Seq(Any) $a ) {
+multi next-level ( List $a ) {
$a.map: |*.&iter
}
+constant @fib-sum := (\( :0sum, pos => @fib ),), *.&next-level.cache ... *;
+
sub fib-sum ( $sum ) {
- state @fib-sum = \( :0sum, pos => @fib ), *.&iter.cache ... *;
my $stop-index = @fib.first: * > $sum, :k;
@fib-sum
@@ -25,7 +26,7 @@ sub MAIN ( :$test!, :$log ) {
use Test;
my $wi = &iter.wrap: {
- say .<sum>," ",.<used>, " ",.<pos>.cache.head when Capture;
+ say .<sum>, " ", .<used>, " ", .<pos>.cache.head;
callsame
} if $log;