检查变量是否为无穷大

时间:2015-11-03 20:19:42

标签: compare ocaml

我正在编写程序,其中存在添加变量,这可能是无限的。在某些地方neg_infinity + infinity应为neg_infinityinfinity,因此我正在努力制作'if'以确保正确的结果。但我不知道如何检查,如果变量是无穷大。 简单的if variable = infinity错误,导致infinity = infinityinfinity != infinityExample。片段:

let p = 42. /. 0.;;

if p = infinity then
    print_string "Yes!\n"
else
    print_string "NO!\n";;

if p != infinity then
    print_string "Yes!\n"
else
    print_string "NO!\n";;

打印双“是”。即使是p <= infinityp >= infinity 我的想法是检查,如果p >= infinity(我相信,只有无限可以满足这种不平等。),但我不知道它是否总是正确的。
同时选中==,但无法正常工作。

我不知道,如何在OCaml中正确解决它,那么应该如何实现呢?

1 个答案:

答案 0 :(得分:5)

请勿使用!=表示不平等,请使用<>

# let p = 42. /. 0.;;
val p : float = infinity
# p = infinity;;
- : bool = true
# p <> infinity;;
- : bool = false
# 

通用平等是=。 通用不平等是<>

特殊目的(奇怪和不愉快)的平等是==。 特殊目的(奇怪和不愉快)的不平等是!=

(我开玩笑,但不是那么多。)