names=zip
visibility=public
kind=defined

--- zip(*lists)  -> [[object]]
--- zip(*lists) {|v1, v2, ...| ...} -> nil

自身と引数に渡した配列の各要素からなる配列の配列を生成して返します。
生成される配列の要素数は self の要素数と同じです。

ブロック付きで呼び出した場合は、
self と引数に渡した配列の各要素を順番にブロックに渡します。

@param lists 配列を指定します。
             配列以外のオブジェクトを指定した場合は to_ary メソッドによ
             る暗黙の型変換を試みます。to_ary メソッドに応答できない場
             合は each メソッドによる暗黙の型変換を試みます。

@raise TypeError 引数に配列以外の(暗黙の型変換が行えない)オブジェクトを
                 指定した場合に発生します。


例:
    p [1,2,3].zip([4,5,6], [7,8,9])
        # => [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

    p [1,2].zip([:a,:b,:c], [:A,:B,:C,:D])
        # => [[1, :a, :A], [2, :b, :B]]

    p [1,2,3,4,5].zip([:a,:b,:c], [:A,:B,:C,:D])
        # => [[1, :a, :A], [2, :b, :B],
        #     [3, :c, :C], [4, nil, :D], [5, nil, nil]]
    
    p [1,2,3].zip([4,5,6], [7,8,9]) {|ary|
      p ary
    }
        # => [1, 4, 7]
        #    [2, 5, 8]
        #    [3, 6, 9]
        #    nil


