我有两个序列(元组),我需要在其中进行连接:
进入序列(元组):
在C#中,我可以使用Linq Join扩展方法执行此操作,如:
seq1.Join(seq2, t => t.Item2, t=> t.Item1,
(t,u) => Tuple.Create(t.Item1, u.Item2))
Run Code Online (Sandbox Code Playgroud)
我如何在F#中实现这一目标?我在那里找不到Seq的加入.
编辑:实际上,你可以使用LINQ:
> open System.Linq;;
> let ans = seq1.Join(seq2, (fun t -> snd t), (fun t -> fst t), (fun t u -> (fst t, snd u)));;
Run Code Online (Sandbox Code Playgroud)
为什么不使用F#的本机Seq功能?如果您查看文档,在这个问题上,您只需使用这些而不是LINQ.以Seq.map2功能为例:
> let mapped = Seq.map2 (fun a b -> (fst a, snd b)) seq1 seq2;;
val it : seq<string * string> =
seq [("city1", "product1"); ("city2", "product2")]
Run Code Online (Sandbox Code Playgroud)
应该给你你想要什么,在哪里seq1以及seq2是你的第一个和第二个序列.
| 归档时间: |
|
| 查看次数: |
1582 次 |
| 最近记录: |