let rotateGridClockwise grid = let height, width = Array2D.length1 grid, Array2D.length2 grid Array2D.init width height (fun row column -> Array2D.get grid (height - column - 1) row) let printGrid width = Array2D.iteri (fun _ column item -> printf "%d " item if column = width - 1 then printfn "") let height, width = 2, 3 let testGrid = Array2D.init height width (fun row column -> row * width + column) printGrid width testGrid printfn "" rotateGridClockwise testGrid |> printGrid height