Определить функцию фильтра;таким образом, он вызывается один раз для каждого элемента, исключая дублирование вычисления C
:
Filter = fun({CertainDisease, KnownSymptoms}) ->
C = length(PatientSymptoms) - length(PatientSymptoms--KnownSymptoms),
C >= 2 andalso C <= 5
end
И используйте его в своем понимании списка следующим образом:
[CertainDisease ||
{CertainDisease,KnownSymptoms} <- Expertise,
Filter({CertainDisease, KnownSymptoms})
]