Zip Command

Zip( <Expression>, <Var1>, <List1>, <Var2>, <List2>, …​)

Creates list of objects obtained by substitution of variables in the expression by elements of corresponding lists. If the number of variables matches the number of lists, each variable is taken from the following list. If the number of variables exceeds number of lists by one, the last variable takes values from 1, 2, 3, …​, k where k is the length of the shortest list. Length of the resulting list is minimum of lengths of input lists.

Let P, Q, R, S be some points. Zip(Midpoint(A, B), A, {P, Q}, B, {R, S}) returns a list containing midpoints of segments PR and QS.

Let list1={x^2, x^3, x^6} be a list of polynomials. Zip(Degree(a), a, list1) returns the list {2, 3, 6}.

Let list1={1, 2, 5} be a list of numbers. Zip(Simplify(a*x^(b-1)), a, list1,b) returns the list {1, 2x, 5x²}.

Variables can also be functions: Zip(f(2), f, {x+1,x+3}) returns the list {3, 5}.

In each list the elements must be of the same type.