Неожиданные результаты с OCaml! =
Из того, что я могу сказать, = и!= предполагается работать с строками в OCaml. Я вижу странные результаты, хотя я хотел бы лучше понять.
Когда я сравниваю две строки с =, я получаю ожидаемые результаты:
# "steve" = "steve";;
- : bool = true
# "steve" = "rowe";;
- : bool = false
но когда я пытаюсь!= Я этого не делаю:
# "steve" != "rowe";;
- : bool = true
# "steve" != "steve";; (* unexpected - shouldn't this be false? *)
- : bool = true
Может ли кто-нибудь объяснить? Есть ли лучший способ сделать это?
Ответы
Ответ 1
!=
не является отрицанием =
. <>
- это отрицание =
, которое вы должны использовать:
# "steve" <> "rowe" ;;
- : bool = true
# "steve" <> "steve" ;;
- : bool = false
#
!=
является отрицанием ==
, и если вы новичок OCaml, вы не должны использовать ни одно из этих двух. Они могут быть немного сложными, и они официально недоказаны (единственная гарантия состоит в том, что если два значения ==
, они =
).