En informática, una comparación a tres sentidos toma dos valores A y B pertenecientes a un tipo con un orden total y determina si A < B, A = B o A > B en una única operación, de acuerdo con la ley matemática de tricotomía. El operador para la comparación a tres sentidos de números es tradicionalmente representado por el símbolo <=> (operador de nave espacial o spaceship operator) y es usado en lenguajes como Perl, Ruby, Apache Groovy, PHP y Eclipse Ceylon.[1][2][3]

Computación a nivel de máquina

Muchos procesadores tienen un juego de instrucciones que soporta una operación como esta en tipos primitivos. Algunas máquinas manejan enteros basados en una representación de signo y magnitud o de complemento a uno, los cuales permiten representan un cero positivo y negativo. Esto no viola la ley de tricotomía siempre y cuando se adopte un orden total consistente: tomar como válido −0 = 0 ó −0 < 0. Los tipos de coma flotante, sin embargo, son una excepción a la ley de tricotomía: existe un valor especial "NaN" tal que x < NaN, x > NaN y x = NaN son falsos para todo x (también flotante), inclusive si x toma como valor NaN.

Lenguajes de alto nivel

En C, las funciones strcmp y memcmp realizan una comparación a tres sentidos entre cadenas y búferes de memoria, respectivamente. Estas pueden retornar un número negativo cuando el primer argumento es lexicográficamente más pequeño que el segundo, cero cuando los argumentos son iguales y un número positivo en cualquier otro caso. Esta convención de retornar el "signo de la diferencia" es extendida a las funciones de comparación arbitraria por la función estándar de ordenamiento qsort, la cual toma una función de comparación como argumento. Desde C 20 se incluye el operador de nave espacial <=>, el cual similarmente retorna el signo de la diferencia y también puede retornar diferentes tipos (convertibles a enteros con signo) dependiendo el rigor de la comparación.

En Perl (únicamente para comparaciones numéricas, puesto que cmp se usa para comparación de cadenas), PHP (desde la versión 7), Ruby y Apache Groovy, el operador de nave espacial <=> retorna los valores -1, 0 o 1 dependiendo de si A < B, A = B o A > B, respectivamente. En Python 2.x (removido desde la versión 3), OCaml y Kotlin, las funciones cmp, compare y compareTo, respectivamente, computan lo mismo. En la librería estándar de Haskell, la función de comparación a tres sentidos compare es definida para todos los tipos en la clase Ord; esta función retorna un objeto de tipo Ordering, cuyos valores son LT (less than, menor que), EQ (equal, igual) y GT (greater than, mayor que).[4]

Véase también

  • strcmp

Referencias


Los sentidos comparados con los sensores.

Cuadro Comparativo Sentidos PDF Gusto Oído

Los tres sentidos PPT

Comparación de los sentidos by jerónimo López Reina on Prezi

PNL Tres sentidos Piloto de EmprendimientosMarca PersonalPersonal