Credence.Rule.NoManualFrequencies
(credence v0.3.0)
Copy Markdown
Readability rule: Detects manual frequency counting with
Enum.reduce(list, %{}, fn x, acc -> Map.update(acc, x, 1, ...) end).
Enum.frequencies/1 (available since Elixir 1.10) does exactly this in a
single, optimized call.
Bad
list
|> Enum.reduce(%{}, fn item, counts ->
Map.update(counts, item, 1, &(&1 + 1))
end)Good
Enum.frequencies(list)