У меня есть список кортежей, скажем,
[{x, a, y}, {x, b, y}].
Есть ли встроенная функция (или могу я использовать комбинацию СТАНДАРТНЫХ ФОРМАТОВ ИНТЕРФЕЙСА КОНТРОЛЬНЫХ ЗАДАЧ) удалить все соответствие кортежей {x, _, y}
, как в соответствии и удаляют на основе первого и третьего срока в кортежах, игнорируя второе?
Функция lists: filter / 1 соответствует вашим потребностям, например
Ls = [{x,a,y}, {a,b,c}],
F = fun ({x,_,y}) -> false ; (_) -> true end,
lists:filter(F, Ls).
Вы также можете использовать понимание списков, которое похоже на комбинацию списков: карта / 2 и списков: фильтр / 2.
[L || L <- Ls, F(L)]
Если ваш предикат был противоположным, в том смысле, что вам нужны были только те, которые совпадают с {x, _, y}, вы могли бы написать его следующим образом, потому что генератор отфильтрует те, которые не соответствуют шаблону.
[L || {x,_,y}=L <- Ls]