On Thursday, 21 April 2022 at 04:36:13 UTC, Salih Dincer wrote:
On Thursday, 21 April 2022 at 03:41:24 UTC, Ali Çehreli wrote:
On 4/20/22 19:11, Alain De Vos wrote:
> Maybe there are multiple solutions ?
Indeed. :)
I have a Range struct here:
http://ddili.org/ders/d.en/ranges.html#ix_ranges.infinite%20range
My favorite is the struct range. Because it is more
understandable and personalized. Moreover, you can limit it
without using ```take()```.
```d
struct FibonacciRange(int l)
{
long a = 1, b = 1;
bool empty()
{
return a > l;
}
long front() const
{
return a;
}
void popFront()
{
auto t = a;
a = b;
b += t;
}
}
enum limit = 16;
void main()
{
import std.stdio;
FibonacciRange!limit fibs;
fibs.write(": ");
import std.algorithm;
auto total = fibs.sum;
total.writeln;
assert(total == 33);
}
```
SDB@79
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.