start = File.read!("inputs/day10.txt") digitRegex = ~r/(\d)\1*/ lookAndSayStream = Stream.iterate(start, fn current -> Regex.scan(digitRegex, current) |> Enum.map(fn [seq, _] -> length = String.length(seq) type = String.at(seq, 0) "#{length}#{type}" end) |> Enum.join() end) [fourtiethEntry] = Stream.drop(lookAndSayStream, 40) |> Enum.take(1) IO.puts("Fourtieth Entry Length: #{String.length(fourtiethEntry)}") [fiftiethEntry] = Stream.drop(lookAndSayStream, 50) |> Enum.take(1) IO.puts("Fiftieth Entry Length: #{String.length(fiftiethEntry)}")