Неожиданные результаты с OCaml! =

Из того, что я могу сказать, = и! =, как предполагается, работает над строками в OCaml. Я вижу странные результаты хотя, который я хотел бы понять лучше.

Когда я сравниваю две строки с =, я получаю результаты, которые я ожидаю:

# "steve" = "steve";;
- : bool = true
# "steve" = "rowe";;
- : bool = false

но когда я пробую! = Я не делаю:

# "steve" != "rowe";;
- : bool = true
# "steve" != "steve";; (* unexpected - shouldn't this be false? *)
- : bool = true

Кто-либо может объяснить? Существует ли лучший способ сделать это?

16
задан Pascal Cuoq 5 November 2012 в 16:12
поделиться

1 ответ

! = не является отрицанием = . <> - это отрицание = , которое вы должны использовать:

# "steve" <> "rowe" ;;
- : bool = true
# "steve" <> "steve" ;;
- : bool = false
# 

! = - это отрицание == , и если вы Новичок в OCaml, вам пока не следует использовать ни один из этих двух. Они могут быть немного сложными, и они официально занижены (единственная гарантия состоит в том, что если два значения равны == , они равны = ).

19
ответ дан 30 November 2019 в 22:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: