Re: Range handling difficulties
On Wednesday, 24 April 2024 at 14:22:10 UTC, H. S. Teoh wrote: On Wed, Apr 24, 2024 at 08:08:06AM +, Menjanahary R. R. via Digitalmars-d-learn wrote: [...] evenfib.until!(n => n > 4_000_000).sum.writeln; T Thanks a lot! You've made my day
Re: Range handling difficulties
On Wed, Apr 24, 2024 at 08:08:06AM +, Menjanahary R. R. via Digitalmars-d-learn wrote: > I tried to solve Project Euler [problem > #2](https://projecteuler.net/problem=2) using > [Recurrence/recurrence](https://dlang.org/library/std/range/recurrence.html). > > Assuming `genEvenFibonacci` is the appropriate funtion in Explicit > form, I got what I need like so: > > ``` > auto evenfib = recurrence!genEvenFibonacci(2uL, 8uL); > > writeln; > evenfib.take(11).sum.writeln; > ``` > > But that's like cheating because there is no prior knowledge of `11`. > > I just got it manually by peeking at the sequence `[2, 8, 34, 144, > 610, 2584, 10946, 46368, 196418, 832040, 3524578, 14930352]`. > > `14930352` must be filtered out because beyond the limit set! > > How to fix that properly using all the standard library capabilities > programatically? > > I'm thinking of Range and/or std.algorithm. evenfib.until!(n => n > 4_000_000).sum.writeln; T -- The trouble with TCP jokes is that it's like hearing the same joke over and over.
Range handling difficulties
I tried to solve Project Euler [problem #2](https://projecteuler.net/problem=2) using [Recurrence/recurrence](https://dlang.org/library/std/range/recurrence.html). Assuming `genEvenFibonacci` is the appropriate funtion in Explicit form, I got what I need like so: ``` auto evenfib = recurrence!genEvenFibonacci(2uL, 8uL); writeln; evenfib.take(11).sum.writeln; ``` But that's like cheating because there is no prior knowledge of `11`. I just got it manually by peeking at the sequence `[2, 8, 34, 144, 610, 2584, 10946, 46368, 196418, 832040, 3524578, 14930352]`. `14930352` must be filtered out because beyond the limit set! How to fix that properly using all the standard library capabilities programatically? I'm thinking of Range and/or std.algorithm.