获取列表,其中每个列表将包含来自另一个列表集合的ax位置的元素

Omu*_*Omu 1 f#

基本上有这个:

[
[1;2;3];
[4;5;7];
[8;9;0];
]
Run Code Online (Sandbox Code Playgroud)

我想得到这个(垂直读/转90度):

[
[1;4;8];
[2;5;9];
[3;7;0];
]
Run Code Online (Sandbox Code Playgroud)

有谁知道在f#中这样做的简单方法?

Joh*_*mer 5

我会通过转换为数组来实现 -

let arr = input |> List.map (List.toArray) |> List.toArray //a array of arrays
let out = Array2D.create size1 size2 (fun x y -> arr.[y].[x])
Run Code Online (Sandbox Code Playgroud)

  • 第一部分应缩短为`let arr = input |> array2D`. (2认同)