Check if an element is within a sequence

前端 未结 5 670
野性不改
野性不改 2021-01-07 23:51

how to check if an element is contained within a sequence? I expected some Seq.contains, but i could not find it. Thanks

EDIT: Or, for an easier tas

相关标签:
5条回答
  • 2021-01-08 00:31

    Seq.exists again, but with slightly different syntax -

    let testseq = seq [ 1; 2; 3; 4 ]
    let testn = 2
    testseq |> Seq.exists (fun x -> x = testn)
    

    See MSDN F#: Seq.exists function: https://msdn.microsoft.com/en-us/library/ee353562.aspx

    Lots of other good ones there too!

    0 讨论(0)
  • 2021-01-08 00:42

    Seq.exists

    let testseq = seq [ 1; 2; 3; 4 ]
    let equalsTwo n = (n = 2)
    let containsTwo = Seq.exists equalsTwo testseq
    
    0 讨论(0)
  • 2021-01-08 00:48

    Set is your friend here:

    let a = set [0;1;2;3]
    let b = set [2;3;4;5]
    let c = a - b
    let d = b - a
    let e = Set.intersect a b
    let f = a + b
    > 
    val c : Set<int> = seq [0; 1]
    val d : Set<int> = seq [4; 5]
    val e : Set<int> = seq [2; 3]
    val f : Set<int> = seq [0; 1; 2; 3; ...]
    

    Danny

    0 讨论(0)
  • 2021-01-08 00:51

    (Another question, another answer.)

    This works, but I don't think that it's the most idomatic way to do it - (you'll need to wait until the US wakes up to find out):

    let s1 = seq [ 1; 2; 3; 4 ]
    let s2 = seq [ 3; 4; 5; 6 ]
    
    seq {
        for a in s1 do
            if not (Seq.exists (fun n -> n = a) s2) then
                yield a
            }
    
    0 讨论(0)
  • 2021-01-08 00:53

    Little bit simpler:

    let contains x = Seq.exists ((=) x)
    
    0 讨论(0)
提交回复
热议问题