Erlang list comprehension
erlang, list-comprehension, variable-assignment
Solution
A way of writing it directly without a `fun` would be to use a `begin ... end` block ending with a boolean test:
[ CertainDisease || {CertainDisease,KnownSymptoms} <- Expertise,
begin
C = length(PatientSymptoms) - length(PatientSymptoms -- KnownSymptoms),
C >= 2 andalso C <= 5
end ]
Problem
I'm testing an expression with two inequalities for the condition of a list comprehension. Is there a way to have assignments here and not duplicate that expression? The following code doesn't work, but I wish it would: ``` diagnose(Expertise,PatientSymptoms) -> {[CertainDisease|| {CertainDisease,KnownSymptoms}<-Expertise, C=length(PatientSymptoms)-length(PatientSymptoms--KnownSymptoms), C>=2, C<=5 ]}. ```