Infinite fibonacci sequence, lazy take first 42 values
    Salih Dincer 
    salihdb at hotmail.com
       
    Thu Apr 21 08:00:07 UTC 2022
    
    
  
On Thursday, 21 April 2022 at 05:00:53 UTC, Alain De Vos wrote:
>
> This example limits the maximum value returned by the fibonacci 
> function. f(n) < limit
> But it does not allow to return the n-th element of a fibonacci 
> function.
You are free to use ```take():```
```d
struct FibonacciRange(long l) { /*...*/ }
enum limit = long.max;
void main()
{
   FibonacciRange!limit fibs;
   auto fibFirst90 = fibs.take(90);
   auto total = fibFirst90.sum;
        total.writeln; // "7540113804746346428" == fib(92)-1
   auto fibInfinite = recurrence!("a[n-1] + a[n-2]")(1L, 1L);
   assert(fibInfinite.take(92).array[$-1]-1 == total);
}
```
SDB at 79
    
    
More information about the Digitalmars-d-learn
mailing list