func drop(while predicate: (Self.Iterator.Element) throws -> Bool) rethrows -> Self.SubSequence
I take it the "throws" on the type of predicate means it can 'throw/return' an error. Why would you do this? Why not just require your predicate function to be able to process any element?Or I am confused?
It seems like the equivalent in Go, for example, would be something like this
func drop(seq []T, while func(T) (bool, error)) ([]T, error)
which, again, seems like madness.Or am I confused?