我有(x: int, y:bool)
类型的元组序列,如果x
是y=isMin
,我想找到valList
中isMin
项的最小let valList = seq{ for i =0 to 8 do yield (GetVal (i,not isMin),not isMin) }
let onlyMinType (x: int, y:bool) = if y==isMin then x
let maxVal = valList |> Seq.collect(onlyMinType) |> if isMin then Seq.min else Seq.max
maxVal
真。
Seq.collect(onlyMinType)
我不知道该怎么做
onlyMinType
和函数{{1}}
答案 0 :(得分:1)
我有
seq
Tuple
个类型(x: int, y:bool)
,我想查找x
y=isMin
项{min}valList if
}} {isMin {1}} TRUE`。
我们的想法是使用Seq.filter
snd
来过滤来自seq的值,其中第二个值为is
。然后使用Seq.sortBy
fst
根据每个元组的第一个值对seq进行排序。
true
答案 1 :(得分:1)
您可以通过几种不同的方式使用Seq.minBy
:
[(1, false); (2, true); (0, true); (-1, false)]
|> Seq.filter snd
|> Seq.minBy fst
|> fst
或
[(1, false); (2, true); (0, true); (-1, false)]
|> Seq.minBy (fun (n, b) -> if b then n else Int32.MaxValue)
|> fst
会很好用。