public
Authored by
CattenLinger 

[Kotlin] Fibonacci Iterator
An iterator implementation that produces numbers from the Fibonacci sequence.
import java.math.BigDecimal
class FibonacciIterator : Iterator<BigDecimal> {
var generations = 0L
private set
private var ancient = BigDecimal(0)
private var parents = BigDecimal(1)
override fun hasNext(): Boolean {
return generations < Long.MAX_VALUE
}
override fun next(): BigDecimal {
return when(generations) {
0L -> ancient
1L -> parents
else -> (ancient + parents).also {
ancient = parents
parents = it
}
}.also { generations++ }
}
}
Please register or sign in to comment