15 lines
419 B
Plaintext
15 lines
419 B
Plaintext
defmodule Average do
|
|
def mode(list) do
|
|
gb = Enum.group_by(list, &(&1))
|
|
max = Enum.map(gb, fn {_,val} -> length(val) end) |> Enum.max
|
|
for {key,val} <- gb, length(val)==max, do: key
|
|
end
|
|
end
|
|
|
|
lists = [[3,1,4,1,5,9,2,6,5,3,5,8,9],
|
|
[1, 2, "qwe", "asd", 1, 2, "qwe", "asd", 2, "qwe"]]
|
|
Enum.each(lists, fn list ->
|
|
IO.puts "mode: #{inspect list}"
|
|
IO.puts " => #{inspect Average.mode(list)}"
|
|
end)
|