Kombinieren einer Listenspalte in OCaml

Ich möchte im Wesentlichen eine Matrix in OCaml transponieren (ohne Rekursion oder irgendeine Art von Schleife)

Zum Beispiel, wenn ich die folgende Matrix habe:[[1;2];[3;4]],
Ich möchte die Ausgabe von @ hab[[1;3];[2;4]].

Was ich bisher getan habe, ist die ursprüngliche Matrix in einzelne Spalten aufzuteilen:

//function that separates into cols
let separate li =
    List.map (fun x -> [x]) li;;

Ich rufe diese Hilfsfunktion von einer anderen Funktion auf:

let trans x = 
    List.concat (List.map separate li) x;;

Ich dachte, dies würde alle Spalten so kombinieren, wie ich es möchte, endete jedoch mit der folgenden Ausgabe:[[1];[2];[3];[4]].

Antworten auf die Frage(4)

Ihre Antwort auf die Frage