Мне нужно пройти список пар и проверить одно из значений в паре. Скажем, я получил этот список:f # - простая итерация по списку пар
let listOfPairs = [("Joe",100);("Bo",5);("Morten",60)]
И я должен проверить, равна ли значение int этой пары 100 или нет. Я не ищу метод List.exist
, а скорее способ проверить это с помощью сопоставления с образцом, проходя через каждую пару в списке и проверить, равно ли значение 100 или нет.
Я, очевидно, пробовал многое сам, но это слишком плохо, чтобы иметь какое-либо хорошее влияние в этом посте. Любые идеи или предложения очень ценятся, спасибо заранее.
Это сопоставление с образцом было именно тем, что я искал, спасибо огромное! Однако не могли бы вы вкратце объяснить, что такое «хвост» в этом примере? Спасибо! – Peterrr
Нет проблем, оператор 'cons' (' :: ') в шаблоне соответствует первому элементу в списке и остальной части списка. Здесь 'tail' - это остальная часть списка, это передается функции, так что мы рекурсивно перебираем список –
Хм .. Я просто не уверен, как он знает, когда нужно совместить первый элемент списка, и когда чтобы соответствовать остальной части списка? Сложно обернуть голову, как «хвост» не только первый элемент списка? Знает ли это, что из того, что функция принимает в качестве аргументов? – Peterrr