如何规范化 Elixir 中的数字列表?

How to normalize a list of numbers in Elixir?

最有效的方法是什么? (对于大量的数字)? 我找不到这个问题的可靠答案。

一个从 Enum.min_max/2 or Enum.min_max_by/3 if the normalization is somehow custom. Then one just 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]