Мне нужна функция, которая возвращает ленивый генератор различных сгенерированных функций генератора, таких как фильтр и карта. Например, если я хочу, чтобы применить lazy.filter().map()
код выглядит следующим образом:Generic LazyCollection type
// Simplified
typealias MyComplexType = Int
typealias MyComplexCollection = [MyComplexType]
func selection() -> LazyMapCollection<LazyFilterCollection<MyComplexCollection>, Int> {
let objects:MyComplexCollection = [1, 2, 3, 4, 5, 6]
let result = objects.lazy.filter({$0 < 4}).map({$0 * 10})
return result
}
for obj in someObjects() {
print(obj)
}
Есть более общий способ указать LazyMapCollection<LazyFilterCollection<MyComplexCollection>, Int>
? Я пробовал LazyGenerator<MyComplexCollection>
, но я получаю ошибку несовместимости типа. Связывание более ленивых функций сделает этот тип еще более сложным. Лучше и более подходящим для моих нужд будет иметь тип, похожий на только LazySomething<MyComplexType>
.