def zip(*lists)
      length = nil
      values = []
      lists.each do |list|
        array = list.to_a
        values << array.dup
        length = length.nil? ? array.length : [length, array.length].min
      end
      values.each do |value|
        value.slice!(length)
      end
      new_list_value = values.first.zip(*values[1..-1])
      list(new_list_value.map {|list| list(list, :space)}, :comma)
    end
def zip(*lists)
      length = nil
      values = []
      lists.each do |list|
        array = list.to_a
        values << array.dup
        length = length.nil? ? array.length : [length, array.length].min
      end
      values.each do |value|
        value.slice!(length)
      end
      new_list_value = values.first.zip(*values[1..-1])
      list(new_list_value.map {|list| list(list, :space)}, :comma)
    end
Combines several lists into a single multidimensional list. The nth value
 of the resulting list is a space separated list of the source lists' nth
 values.

 The length of the resulting list is the length of the
 shortest list.

 @example
   zip(1px 1px 3px, solid dashed solid, red green blue)
   => 1px solid red, 1px dashed green, 3px solid blue
 @overload zip($lists...)
   @param $lists [[Sass::Script::Value::Base]]
 @return [Sass::Script::Value::List]