math - Divmod:一个 Elixir 函数中除法的商和余数
问题描述
在许多编程语言中,有一个组合运算将除法的商和余数都作为整数返回。在很多情况下,之所以调用它,是divmod
因为它在一个步骤中同时满足了除法和模函数的目的。
我想进行一次操作的目的是,除法计算不需要执行两次,结果不需要表示为可能有损的浮点值。
Elixir 有这样的组合功能吗?我只能找到div
和rem
分开。
解决方案
没有语言核心库,但您可以轻松地自己构建它:
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
实际上并不是做数学的最佳选择。
推荐阅读
- hadoop - 如何解决无效的 Hadoop Yarn Home 错误
- java - 如何使用mockito来模拟grpc ServiceBlockingStub抛出StatusRuntimeException(Status.UNAVAILABLE)?
- python - 如何在 Tkinter 中的单行显示矩阵和数字
- android-studio - Android 工具链 - 为 Android 设备开发(Android SDK 版本 29.0.2)
- node.js - 如何在Angular 2中进行> 2个独立/并行http请求
- python - dict 的 pytest 夹具产量列表抛出“yield_fixture 函数有多个‘产量’:”
- java - 使用 Getter Setter JAVA 从其他类访问变量
- javascript - 无法单击使用 Puppeteer 悬停在另一个元素上后出现的按钮(选择器)
- highlight.js - 如何为所有 pre 标签自动设置 highlite.js 样式
- c - 使用递归和malloc检查c中数组的顺序