Начинается с Enum.min_max/2
или Enum.min_max_by/3
, если нормализация как-то настроена пользователем. Затем нужно просто Enum.map/2
исходный список нормализовать, используя значения из шага 1.
input = [1, 5, -2]
{min, max} = Enum.min_max(input)
{new_min, new_max} = {0, 1}
Enum.map(input,
& new_min+((&1-min)/(max-min)*(new_max-new_min)))
#⇒ [0.42857142857142855, 1.0, 0.0]