Examples

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