extension Array {
func windows() -> AnySequence<ArraySlice<Element>> {
return AnySequence({ () -> AnyIterator<ArraySlice<Element>> in
var index = self.startIndex
return AnyIterator({
if index > self.count - 3 {
return nil
}
let result = self[index..<index + 3]
self.formIndex(after: &index)
return result
})
})
}
}
let seq = [1,11,7,444]
for val in seq.windows() {
print(val)
}
extension Array {
func windows() -> AnySequence<ArraySlice<Element>> {
return AnySequence({ () -> AnyIterator<ArraySlice<Element>> in
var index = self.startIndex
return AnyIterator({
if index > self.count - 3 {
return nil
}
let result = self[index..<index + 3]
self.formIndex(after: &index)
return result
})
})
}
}
let seq = [1,11,7,444]
for val in seq.windows() {
print(val)
}