import Euler.Algebra, only: [fib: 1, num_digits: 1] Stream.iterate(1, &(&1 + 1)) |> Stream.map(&{&1, fib(&1)}) |> Stream.filter(&num_digits(elem(&1, 1)) >= 1000) |> Enum.take(1) |> Enum.map(&elem(&1, 0) + 1) |> Enum.at(0) |> IO.puts()