过滤序列

filtering sequences

存在三个相同大小的不同序列

a:int   = {1,  2,  3,  4}
b:string= {"a","b","a","d"}
c:string= {"y","y","t","t"}

如何从 seq:a 创建一个新的序列,条件是

where b="a" and c="y"
Seq.zip a (Seq.zip b c)
|> Seq.filter (snd >> ((=) ("a", "y")))
|> Seq.map fst
Seq.zip3 a b c
|> Seq.choose (function (n, "a", "y") -> Some n | _ -> None)