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
我需要浏览一个对列表并检查对中的一个值。假设我得到了这个列表:
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