Imports System.Numerics Public Module Numerics Public Iterator Function FibonacciSeq() As IEnumerable(of BigInteger) Dim n = { BigInteger.Zero, BigInteger.One } While True Yield n(0) n = {n(1),n(0) + n(1) } End While End Function End Module
Example2
Dim ListOfTheFirst1000 = FibonacciSeq.Take(1000).ToList Dim Euler2 = FibonacciSeq.TakeWhile(Function(x) x < 4000000).Where(Function(x) x.IsEven).Sum
The Euler2 result relies on the following additional extension method.
Spoiler