在 Num 模块中表示无穷大
Represent infinity in the Num module
在Num模块中,表示:
Numbers (type num) are arbitrary-precision rational numbers, plus the special elements 1/0 (infinity) and 0/0 (undefined).
我希望找到这个 infinity
但找不到。然后,我猜我可以手动创建它:
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
在Num模块中,表示:
Numbers (type num) are arbitrary-precision rational numbers, plus the special elements 1/0 (infinity) and 0/0 (undefined).
我希望找到这个 infinity
但找不到。然后,我猜我可以手动创建它:
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