Opened 15 years ago
Last modified 15 years ago
#1096 closed defect
Error en los operadores de comparación con múltiples argumentos — at Version 1
| 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 (1)
comment:1 Changed 15 years ago by
| Description: | modified (diff) |
|---|---|
| Status: | new → accepted |
Note: See
TracTickets for help on using
tickets.
