Example:
var numbers: [Int] = [1, 2, 3, 6, 9]
let modifiedNumbers = numbers.lazy
.filter { number in
print("Even number filter")
return number % 2 == 0
}.map { number -> Int in
print("Doubling the number")
return number * 2
}
print(modifiedNumbers[0])
print(modifiedNumbers.first)
The result is
Doubling the number
2
Even number filter
Even number filter
Doubling the number
Optional(4)
Why is the value obtained by subscript of Array different from the value obtained by .first when lazy is added