O(n)zip takes two Vectors and returns a list of
corresponding pairs of elements. If one input Vector is short,
excess elements of the longer Vector are discarded. This is
equivalent to a pair of unpack operations.
zipWith generalises zip by zipping with the function
given as the first argument, instead of a tupling function. For
example, zipWith (+) is applied to two Vectors
to produce the list of corresponding sums.