f# - 对列表的简单迭代

f# - simple iterate on list of pairs

我需要浏览一个对列表并检查对中的一个值。假设我得到了这个列表:

let listOfPairs = [("Joe",100);("Bo",5);("Morten",60)]

而且我必须检查该对的 int 值是否等于 100。我不是在寻找 List.exist 方法,而是通过模式匹配来检查它的某种方法,遍历列表中的每一对并检查值是否为 100。

我自己显然已经尝试了很多东西,但是在这个post中没有任何好的影响太糟糕了。非常感谢任何想法或建议,提前致谢。

如果你不想使用 List.exist 那么你可以编写一个模式匹配的递归函数来提取值:

let rec listContainsHundred = function
   | (_, 100)::_ -> true
   | _::tail -> listContainsHundred tail
   | [] -> false

否则 List.exists 的简单解决方案是:

List.exists (snd >> ((=) 100)) listOfPairs