defmodule RC do def entropy(str) do leng = String.length(str) String.split(str, "", trim: true) |> Enum.group_by(&(&1)) |> Enum.map(fn{_,value} -> length(value) end) |> Enum.reduce(0, fn count, entropy -> freq = count / leng entropy - freq * :math.log2(freq) end) end end IO.inspect RC.entropy("1223334444")