#1096 closed defect (fixed)
Error en los operadores de comparación con múltiples argumentos
Reported by: | Víctor de Buen Remiro | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | highest | Milestone: | Mantainance |
Component: | Kernel | Version: | |
Severity: | blocker | Keywords: | |
Cc: | imendez@… |
Description (last modified by )
Los operadores de comparación con múltiples argumentos, es decir EQ, NE, LT, GT, LE, GE
, no funcionan correctamente en la lógica trivaluada con omitidos.
Por ejemplo, el operador EQ resulta no ser conmutativo
Real ?==1; //devuelve ? Real 1==1; //devuelve ? Real EQ(?,1); //devuelve ? Real EQ(1,?); //devuelve 1 y tendría que devolver ?
Los operadores de comparación multi-argumentos deben cumplir la regla general
CMP(a, b, c, d, ...) = CMP(a,b) & CMP(b,c) & CMP(c,d) & ...
Sin embargo, esta expresión
Real EQ(?, 0, 1)
devuelve ? cuando tiene que devolver 0, pues 0 no es igual a 1 nunca, sea cual sea el resultado de comparar ? contra 0.
Change History (3)
comment:1 Changed 14 years ago by
Description: | modified (diff) |
---|---|
Status: | new → accepted |
comment:2 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
comment:3 Changed 14 years ago by
Note: See
TracTickets for help on using
tickets.
(In [3204]) Fixes #1096