Генерация последовательностей

Протокол Strideable, реализуемый основными числовыми типами, позволяет легко и быстро создавать ограниченные числовые последовательности по принципу арифметической прогрессии.

Метод stride принимает на вход граничное значение последовательности и шаг. А вариант его вызова с to или through определяет вхождение самой границы (если на ней останавливается расчет) в конечный результат (to — не войдет, through — войдет).

import Foundation

for i in 1.stride(to: 25, by: 3) {
    // 1, 4, 7, 10, 13, 16, 19, 22
    // 25 excluded
}

for j in 1.stride(through: 25, by: 3) {
    // 1, 4, 7, 10, 13, 16, 19, 22, 25
    // 25 included
}

for k in 6.stride(through: 1, by: -2) {
    // 6, 4, 2
}