f# - 在对列表上简单迭代

时间:2015-03-20 11:55:15

标签: list f# pattern-matching

我需要查看对列表并检查对中的一个值。说我得到了这个清单:

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

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

我显然自己尝试了很多东西但是在这篇文章中有任何好的影响力太糟糕了。任何想法或建议都非常感谢,提前谢谢。

1 个答案:

答案 0 :(得分:3)

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

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

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

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