Infinite streams
The tail is built on demand.
main (streams, print)
# |int| is a stream. The tail is not evaluated until it is pulled,
# so a stream can be infinite.
from(n int) |int|
|int: n, *from(n + 1)|
fibs(a int, b int) |int|
|int: a, *fibs(b, a + b)|
main()
tenth = streams.first(streams.dropFirst(fibs(0, 1), 10), 0)
total = streams.sum(streams.take(from(1), 100), 0)
print.line("{tenth} {total}")55 5050