I think you misunderstand, the Swift for-in relies on a sequence, i.e. an object that 'feeds' it a certain number of items. However, the sequence does not have to be lazy in its evaluation. And there is nothing that couples for-in to the concept of lazy evaluation.
When you use for-in to iterate over arrays, strings, dictionaries etc ... it is an iteration of the type you are no doubt familiar with, where you are iterating over some fixed pre-computed structure.
However, sequences can also generate their 'next' value lazily.
It is something that I consider to be an interesting topic, but would certainly not advocate that everything should become a lazy operation.
When you use for-in to iterate over arrays, strings, dictionaries etc ... it is an iteration of the type you are no doubt familiar with, where you are iterating over some fixed pre-computed structure.
However, sequences can also generate their 'next' value lazily.
It is something that I consider to be an interesting topic, but would certainly not advocate that everything should become a lazy operation.