如何在f#中将int列表列表转换为(int * int)列表

时间:2018-11-08 10:46:01

标签: f# f#-interactive f#-data c#-to-f# f#-3.0

如果我要转换列表[[[[0; 5]; [1; 5]; [2; 3]]]到元组列表[(0,5); (1,5); (2,3)]在f#中使用f#或模式匹配,请问我该怎么做?

1 个答案:

答案 0 :(得分:3)

我将拉平列表的外部级别(通过连接第二级列表),然后使用map将内部列表转换为元组:

let transform lst =
    lst
    |> List.concat
    |> List.map (function
        | [a; b] -> (a, b)
        | _ -> failwith "Incorrect list syntax")