Ответ
Sequence — ленивая коллекция, обрабатывает элементы по одному (yield), подходит для больших данных или сложных цепочек операций. Операции (map, filter) выполняются только при терминальном вызове (toList(), first()).
Iterable — eager-коллекция, обрабатывает всю коллекцию сразу на каждом шаге, создавая промежуточные коллекции. Менее эффективен для цепочек операций.
// Sequence: выполняет операции лениво
val seq = sequenceOf(1, 2, 3).map { it * 2 }.filter { it > 3 } // Ничего не вычислено
println(seq.toList()) // [4, 6] — вычисление при терминальной операции
// Iterable: вычисляет сразу на каждом шаге
val list = listOf(1, 2, 3).map { it * 2 }.filter { it > 3 } // Сразу создает [2,4,6], затем [4,6]