在许多编程语言中,有一个组合操作,它将商的除数和余数作为整数返回。在很多情况下,它被称为divmod
,因为它在一个步骤中同时用于除法和模数函数。
我认为进行一次操作的意图是,除法计算不需要执行两次,并且结果不需要表示为可能有损的浮点值。
Elixir中是否有这样的组合功能?我只能单独找到div
和rem
。
答案 0 :(得分:3)
没有语言核心库,但您可以自己轻松构建它:
divmod =
fn e, d ->
~w|div rem|a
|> Enum.map(&apply(Kernel, &1, [e, d]))
|> List.to_tuple()
end
#⇒ #Function<12.99386804/2 in :erl_eval.expr/5>
divmod.(5, 2)
#⇒ {2, 1}
为什么它没有出现在标准库中有两个可能的原因:a)Elixir
意识形态是提供一个支架,而不是瑞士刀框架和b)Erlang
实际上不是做数学的最佳选择。