#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 15 years ago by
| Description: | modified (diff) | 
|---|---|
| Status: | new → accepted | 
comment:2 Changed 15 years ago by
| Resolution: | → fixed | 
|---|---|
| Status: | accepted → closed | 
comment:3 Changed 15 years ago by
Note: See
        TracTickets for help on using
        tickets.
    

(In [3204]) Fixes #1096