在 Num模块,据说:
Numbers (type num) are arbitrary-precision rational numbers, plus the special elements 1/0 (infinity) and 0/0 (undefined).
我希望找到这个无穷大
,但找不到。然后我猜想我可以手工创建它:
let infinity = let one = Int 1 and zero = Int 0 in one // zero
但是流浪汉:
Exception: Failure "create_ratio infinite or undefined rational number".
那么,好吧,Pervasives 中有这个 val infinity : float
,让我们找到一个 num_from_float
。哦,没有这个功能...
那么,有人知道如何用 Num 表示正无穷大和负无穷大吗?
最佳答案
默认情况下,特殊号码处于禁用状态。此行为可以通过 Arith_status 进行控制模块。例如,要允许分母为零,请使用以下命令:
Arith_status.set_error_when_null_denominator false
一旦设置了标志,您的无穷大定义就可以正常工作:
let infinity = let one = Int 1 and zero = Int 0 in one // zero;;
val infinity : Num.num = <num 1/0>
float_of_num infinity;;
- : float = infinity
关于ocaml - 在 Num 模块中表示无穷大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39832107/