2010-06-16 14 views
16

Por lo que puedo decir, = y! = Se supone que funciona en cadenas en OCaml. Estoy viendo resultados extraños que me gustaría entender mejor.Resultados inesperados con OCaml! =

Cuando comparo con dos cadenas = consigo los resultados que esperaba:

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

pero cuando intento = no lo hago:

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

Puede alguien explicar? ¿Hay una mejor manera de hacer esto?

Respuesta

19

!= no es la negación de =. <> es la negación de = que se debe utilizar:

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

!= es la negación de ==, y si usted es un principiante OCaml, no se debería usar cualquiera de estos dos todavía. Pueden ser un poco complicados, y están oficialmente no especificados (la única garantía es que si dos valores son == son).

+2

Una pregunta hace un rato cubre algunas sutilezas. http://stackoverflow.com/questions/1412668/does-have-meaning-in-ocaml – nlucaroni

Cuestiones relacionadas