Math Divmod:一个长生不老药函数中除法的商和余数

Math Divmod:一个长生不老药函数中除法的商和余数,math,elixir,Math,Elixir,在许多编程语言中,有一种组合运算,它以整数形式返回除法的商和余数。在许多情况下,它被称为divmod,因为它在一个步骤中同时用于除法和模函数 我假设使用一个操作的目的是,除法计算不需要执行两次,并且结果不需要表示为可能有损的浮点值 长生不老药有这样的综合作用吗?我只能分别找到div和rem。没有语言核心库,但您可以自己轻松构建它: divmod= fn e,d-> ~w|div rem|a |>map(&apply(内核,&1[e,d])) |>List.to_tuple() 结束 #⇒#功能

在许多编程语言中,有一种组合运算,它以整数形式返回除法的商和余数。在许多情况下,它被称为
divmod
,因为它在一个步骤中同时用于除法和模函数

我假设使用一个操作的目的是,除法计算不需要执行两次,并且结果不需要表示为可能有损的浮点值


长生不老药有这样的综合作用吗?我只能分别找到
div
rem

没有语言核心库,但您可以自己轻松构建它:

divmod=
fn e,d->
~w|div rem|a
|>map(&apply(内核,&1[e,d]))
|>List.to_tuple()
结束
#⇒#功能
divmod.(5,2)
#⇒ {2, 1}

有两个可能的原因导致它没有出现在标准库中:a)
Elixir
思想是提供一个脚手架,而不是瑞士刀框架;b)
Erlang
实际上不是做数学的最佳选择。

我知道我可以自己写。您的解决方案遇到了
rem
无法处理负数的问题,而
mod
通常支持负数。此外,它可能会进行两次计算,或者在您的示例中是否有任何明显的原因不应该发生这种情况?FWIW,向Elixir core添加这样的功能,但被core团队拒绝。据我所知,Elixir中没有这样的功能。我不相信这实际上是语言中的一个共同特征,但我想你的软件开发经验一定和我的不同。