更新时间:2023-11-05 09:49:52
您可以在snd source
上使用List.map
:
let source = ("A", ["B"; "C"; "D"; "E"]);;
// val source : string * string list = ("A", ["B"; "C"; "D"; "E"])
let result = snd source |> List.map (fun x -> fst source, x);;
// val result : (string * string) list =
// [("A", "B"); ("A", "C"); ("A", "D"); ("A", "E")]
更新
有关这些元素的列表
let source = [("A", ["B"; "C"; "D"; "E"]);("A", ["B"; "C"; "D"; "E"]);("A", ["B"; "C"; "D"; "E"])];;
// val source : (string * string list) list =
// [("A", ["B"; "C"; "D"; "E"]); ("A", ["B"; "C"; "D"; "E"]);
// ("A", ["B"; "C"; "D"; "E"])]
您可以使用上面的代码声明一个函数
you can declare a function with code from above
let collectTuple (x, items) = items |> List.map (fun y -> x, y);;
// val collectTuple : x:'a * items:'b list -> ('a * 'b) list
并使用它来调用List.map
:
let result = source |> List.map collectTuple;;
// val result : (string * string) list list =
// [[("A", "B"); ("A", "C"); ("A", "D"); ("A", "E")];
// [("A", "B"); ("A", "C"); ("A", "D"); ("A", "E")];
// [("A", "B"); ("A", "C"); ("A", "D"); ("A", "E")]]
或List.collect
(如果您只想要一个元组列表):
or List.collect
if you want just one list of tuples instead:
let result = source |> List.collect collectTuple;;
// val result : (string * string) list =
// [("A", "B"); ("A", "C"); ("A", "D"); ("A", "E"); ("A", "B"); ("A", "C");
// ("A", "D"); ("A", "E"); ("A", "B"); ("A", "C"); ("A", "D"); ("A", "E")]