Объединение столбца списков в OCaml
Я хочу существенно транспонировать матрицу в OCaml (без использования рекурсии или каких-либо циклов)
Например, если у меня есть следующая матрица:[[1;2];[3;4]]
,
Я хочу получить вывод[[1;3];[2;4]]
.
На данный момент я разбил исходную матрицу на отдельные столбцы:
//function that separates into cols
let separate li =
List.map (fun x -> [x]) li;;
Я вызываю эту вспомогательную функцию из другой функции:
let trans x =
List.concat (List.map separate li) x;;
Я думал, что это объединит все столбцы так, как я хочу, а закончился следующим выводом:[[1];[2];[3];[4]]
.