在许多编程语言中,存在一种组合运算,它将除法的商和余数都返回为整数。在很多情况下,调用它是divmod因为它同时满足除法和一步求模函数的目的。
我认为进行一次操作的目的是,除法计算不需要执行两次,并且结果不需要表示为可能有损的浮点值。
Elixir中有这样的组合功能吗?我只能分别找到div和rem。
没有语言核心库,但您可以轻松地自己构建它:
\n\n\n\ndivmod =\n fn e, d ->\n ~w|div rem|a\n |> Enum.map(&apply(Kernel, &1, [e, d]))\n |> List.to_tuple()\n end\n#\xe2\x87\x92\xc2\xa0#Function<12.99386804/2 in :erl_eval.expr/5>\ndivmod.(5, 2)\n#\xe2\x87\x92\xc2\xa0{2, 1}\nRun Code Online (Sandbox Code Playgroud)\n\n它\xe2\x80\x99s 没有出现在标准库中可能有两个原因:a)Elixir意识形态是提供一个脚手架,而不是瑞士刀框架;b)Erlang实际上并不是做数学的最佳选择。