迭代通过List <List <>>查找F#中的值

Hei*_*bug 2 c# syntax foreach f# list

我有一个List<List<int>>F#.我需要遍历它来寻找给定的值val.在C#中我会做类似的事情:

public bool contains(List<List<int>> list, int value)
    foreach (l in list ){
        foreach(val in l){
             if (val == value)
                 return true; //found value
        }
    }
    return false;
} 
Run Code Online (Sandbox Code Playgroud)

我正在寻找F#中的等价物.我尝试了以下但是我做错了,因为我还不习惯F#语法:

type foo = 
    {
     l : List<List<float>>

    }

let contains (value: float) : bool = 
   for row in foo.l do
       for val in row do
            if (val == value)
                true
   false
Run Code Online (Sandbox Code Playgroud)

上面的代码是错误的.

谁能建议我如何实现这一结果?

Dan*_*iel 9

另一种略有不同的方式

let contains value items =
  items
  |> Seq.concat
  |> Seq.exists ((=) value)
Run Code Online (Sandbox Code Playgroud)

或者,更简洁

let contains value = 
  Seq.concat >> Seq.exists ((=) value)
Run Code Online (Sandbox Code Playgroud)