write a method called zip, defined as follows: (15) /** * applies a given list of bifunctions -- functions that take two arguments of a certain type * and produce a single instance of that type -- to a list of arguments of that type. the * functions are applied in an iterative manner, and the result of each function is stored in * the list in an iterative manner as well, to be used by the next bifunction in the next * iteration. for example, given * list args