ну это если 1 строчкой, можно и разбить естественно
Result = [List || List <- ListOfLists, custom_filter(List)]
custom_filter(List) ->
UKeySortedList = lists:ukeysort(3, List),
length(List) == length(UKeySortedList).
Но ukeysort тут конечно медленнее будет, чем если ты свою функцию напишешь с выходом при нахождении первого дубля. Через lists:keyfind например.