Do you know a much nicer way to take just the n-th item of a lazy range?

import std.stdio, std.array, std.range;
void main() {
    auto fib = recurrence!("a[n-1] + a[n-2]")(1, 1);
    writeln(array(take(fib, 10)).back);
}


In Python I use next(isslice(x, n, n+1)):

>>> from itertools import islice
>>> r = (x*x for x in xrange(10)) # lazy
>>> next(islice(r, 5, 6))
25

Bye,
bearophile

Reply via email to