如果我有一个无限的序列,我就不能使用法线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)