gpt4 book ai didi

ocaml - 在 Num 模块中表示无穷大

转载 作者:行者123 更新时间:2023-12-02 15:19:59 28 4
gpt4 key购买 nike

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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com