如何打开seq <seq <...>&gt;或其他方式制作Seq.collect(有趣的x - &gt; x)</seq <...>

时间:2011-05-23 12:04:21

标签: f# sequence sequences seq

dashboard.Grid
|> Seq.mapi ^-^ fun y sx -> 
    sx  |> Seq.mapi ^-^ fun x s -> 
        if not <| s.IsEmpty && s.CellState.Color = color then 
            let psteps = s.CellState.motion( dashboard, new SPosition(x,y), color )
            if psteps <> null then
                if psteps.IsEmpty then
                    Some(psteps)
                else
                    None
            else None
        else None
    |> Seq.choose id
|> Seq.collect(fun x -> x)
|> Seq.collect(fun x -> x)

所以,我只是这个序列的最后一部分(2个字符串)很奇怪。我可以用其他方式打开序列吗? List.ofSeq()在这里不起作用。

谢谢。

1 个答案:

答案 0 :(得分:4)

我认为您正在寻找Seq.concat,这与Seq.collect(fun x -> x)(或Seq.collect id)相同。