如果我有一个无限的序列,我就不能使用法线Seq.tryFind
.
但是,如果序列是有序的,那意味着当我检测到序列中没有其他元素可以满足我的条件时,可以取消搜索.
是否有一种优雅的方式来表达这样的搜索?
如果你只想使用标准功能 - 这样的东西会起作用
let evens = Seq.initInfinite ((*)2)
let has v =
Seq.tryPick (fun x ->
if x = v then Some (Some v)
elif x > v then Some None
else None)
>> Option.bind id
has 40 evens // Some 40
has 41 evens // None
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
691 次 |
最近记录: |