REBOL [
    Title: "Transpose"
    Date: 3-Jul-2002
    Name: Transpose
    Version: 1.0.0
    File: %Transpose.r
    Author: "Andrew Martin"
    Purpose: "Transposes a Matrix's rows and columns."
    Email: Al.Bri@xtra.co.nz
    Web: http://valley.150m.com
    Category: [util math 3]
    Acknowledgements: [
    "Joel Neely" 
    "Gerald Goertzel" 
    "Larry"
]
    Example: [
    transpose [[1 2 3 4 5] ["a" "b" "c" "d" "e"]] 
    transpose [[1 2 3] [14 15 16] [27 28 29]]
]
]

Transpose: function [
    "Transposes a Matrix's rows and columns."
    [catch]
    Matrix [block!] "The Matrix."
    ][
    Rows Columns Transposed
    ][
    throw-on-error [
        Rows: length? Matrix
        Columns: length? Matrix/1
        Transposed: array reduce [Columns Rows]
        repeat Row Rows [
            repeat Column Columns [
                poke pick Transposed Column Row pick pick Matrix Row Column
                ]
            ]
        Transposed
        ]
    ]