【发布时间】:2018-10-04 18:47:56
【问题描述】:
我正在尝试将每个元素相互压缩/连接。
所以
[ [1;2;3]; [4;5;6]; [7;8;9] ]
将会
[ [1;4;7]; [2;5;6]; [3;6;9] ]
我的第一个方法是使用 zip。但它没有用
let transpose (lst : 'a list list) =
List.map List.zip lst
printfn "%A" ( transpose ( [[1;2;3]; [4;5;6]] ) )
我尝试的另一种方法是这样的:
// Helper function
let firstColumn (lst : 'a list list): 'a list =
List.map List.head lst
// Helper function
let dropFirstColumn (lst : 'a list list): 'a list list =
List.map List.tail lst
// Main function
let transpose (lst: 'a list list) =
firstColumn(dropFirstColumn(lst))
printfn "%A" (transpose ( [ [1;2;3];[4;5;6] ] ))
我不确定如何处理这个问题。我想我需要使用地图,并以某种方式遍历每个子列表并提取每个元素。但任何帮助都会很好!
【问题讨论】:
标签: f#