Списки : функция 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]