Credence.Pattern.NoManualFrequencies (credence v0.4.5)

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)