que define un operador de igualdad a medida (la definición no es muy importante así que voy a insertar material ficticio):OCaml: ¿Por qué no puedo usar este operador infijo?
let (~=~) a b = true
Si trato de usarlo INFIX:
if a ~=~ b then 1 else 2
me sale el siguiente error : This expression is not a function; it cannot be applied
.
Puedo solucionar esto ya sea cambiando el nombre del operador de ~=~
a =~
o llamándolo como una función: if (~=~) a b then 1 else 2
.
Esto parece ser un problema general con los operadores que comienzan con ~
. Mi pregunta es por qué no puedo usar esos operadores infijo? ¿Hay algo especial sobre el símbolo ~
?
Nota: Ya revisé la documentación pero no pude encontrar nada relevante. Tal vez me perdí algo?
respuesta Niza :) Gracias! Todo despejado ahora. – Calin
¿En qué parte del documento oficial está presente esta información? No pude encontrar la parte sobre asociatividad derecha/izquierda. – Ricardo
@Ricardo: hay una tabla de precedencia del operador en http://caml.inria.fr/pub/docs/manual-ocaml/expr.html (cerca de la parte superior). Tenga en cuenta que en primer lugar enumera los operadores de mayor precedencia. –