/* * Copyright 2015-2023 the original author or authors. * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v2.0 which * accompanies this distribution and is available at * * https://www.eclipse.org/legal/epl-v20.html */ package example class FibonacciCalculator { private val fibonacci = sequence { yield(0) // 0th Fibonacci number yield(1) // first Fibonacci number var cur = 1 var next = 1 while (true) { yield(next) // next Fibonacci number val tmp = cur + next cur = next next = tmp } } fun fib(fibonacciNumber: Int) = fibonacci.elementAt(fibonacciNumber) }