#TIL Elixir for 포괄 구문(Comprehensions)
Elixir의 for 포괄 구문(Comprehensions)을 잘 사용한 코드 예제를 ’Testing Elixir (Andrea Leopardi, Jeffrey Matthias, 2021)’ 책에서 봤다.
for id <- 100..900, id not in all_rain_ids do
record = %{"dt" => now_unix, "weather" => [%{"id" => id}]}
assert {:ok, [weather_struct]} = ResponseParser.parse_response(%{"list" => [record]})
assert weather_struct.rain? == false, "Expected weather id (#{id}) to NOT be a rain condition"
end
100..900 |> Enum.filter() |> Enum.each()
구문을 한 번에 표현했다. :into
, :uniq
, :reduce
옵션도 제공해서 말 그대로 포괄 구문으로 웬만한 건 다 표현할 수 있다. 이 정도는 되어야 달달한 문법(Syntactic sugar, 편의 문법)으로 한 자리를 차지할 수 있다.
쓴다면 과용할 것 같고 그냥 무시하자니 간결하게 표현할 수 있는 자리가 분명히 있을 그런 구문이다.