Operadores lógicos de comparación

Pues como en cualquier lenguaje de programación, tenemos operadores que trabajan con lo que le pongas a la izquierda y a la derecha y en función de las reglas del operador harán que la expresión evalúe, bien a true o bien a false, para representar lo verdadero y lo falso.

Los operadores lógicos son herramientas fundamentales para escribir expresiones que evalúan condiciones y devuelven valores booleanos, es decir, true o false. Estos valores representan lo correcto o lo incorrecto, respectivamente, y nos permiten tomar decisiones dentro de nuestro código. Por ejemplo, podemos definir una variable admin y asignarle el valor true para indicar que una cuenta tiene privilegios administrativos.

Uno de los operadores más esenciales es el operador de igualdad, representado por ==. Este operador compara dos expresiones y devuelve true si ambas son exactamente iguales en valor y tipo. Por ejemplo, la expresión 5 == 5 evaluará a true, mientras que 5 == 6 será false. Este operador es especialmente útil cuando queremos verificar si una variable, como x, tiene un valor específico, por ejemplo, x == 100.

En contraposición, tenemos el operador de desigualdad, que se escribe como !=. Este operador devuelve true cuando los valores comparados son diferentes, y false cuando son iguales. Por ejemplo, x != 100 será true si x no es igual a 100. Es importante recordar que un solo igual (=) se utiliza para asignar valores, mientras que dos iguales (==) se usan para comparar. El operador != combina una exclamación con un igual para indicar no igual.

Además de estos operadores básicos, existen operadores para comparar números en términos de orden. El operador menor que < devuelve true si el valor a la izquierda es numéricamente menor que el de la derecha. Por ejemplo, 5 < 7 es true, mientras que 7 < 5 es false. Si queremos incluir la igualdad en la comparación, usamos el operador menor o igual <=, que devuelve true si el valor de la izquierda es menor o igual al de la derecha. Por ejemplo, x <= y será true si x es menor que y o si ambos son iguales.

De manera similar, el operador mayor que > devuelve true cuando el valor de la izquierda es mayor que el de la derecha. Por ejemplo, 7 > 5 es true, pero 7 > 7 es false porque son iguales. Para incluir la igualdad, usamos el operador mayor o igual >=.

Aunque estos operadores suelen usarse con números, también podemos aplicarlos a átomos, que son valores simbólicos o cadenas de texto. Podemos comparar si dos átomos son iguales con ==, por ejemplo, "hola" == "hola" devuelve true, mientras que "hola" == "adiós" devuelve false.

Lo que puede resultar sorprendente es que también podemos usar operadores de orden como < y > para comparar átomos. En este caso, la comparación se realiza de forma lexicográfica, es decir, siguiendo el orden alfabético como en un diccionario. Por ejemplo, el átomo "A" es menor que "B" porque la letra A aparece antes que la B en el alfabeto. Por lo tanto, "A" < "B" evalúa a true.

Cuando comparamos átomos que tienen varias letras, la comparación se hace letra por letra. Por ejemplo, "A" es menor que "AB" porque en un diccionario la palabra más corta que coincide en las primeras letras aparece antes. Por lo tanto, "A" < "AB" es true, mientras que "AB" < "A" es false.

Este tipo de comparaciones lexicográficas puede parecer poco común, pero tiene aplicaciones prácticas en ciertos contextos donde necesitamos ordenar o filtrar datos simbólicos. También podemos usar los operadores <= y >= con átomos para incluir la igualdad en la comparación.

En definitiva, conocer y dominar estos operadores lógicos y de comparación nos permite construir condiciones precisas y controlar el flujo de nuestros programas de manera efectiva, tanto con números como con átomos.

Lista de reproducción
  1. 1
    ¿Qué es Elixir?
    10 minutos
  2. 2
    Instalación de Elixir
    9 minutos
  3. 3
    ¿Qué es la programación funcional? (Como la de Elixir)
    20 minutos
  4. 4
    ¿Cómo funciona la REPL de Elixir?
    7 minutos
  5. 5
    ¿Cómo hacer asignaciones en Elixir?
    7 minutos
  6. 6
    Operadores aritméticos básicos
    6 minutos
  7. 7
    ¿Qué son los tipos de datos de Elixir?
    5 minutos
  8. 8
    Átomos en Elixir
    4 minutos
  9. 9
    Las palabras clave nil, true y false
    6 minutos
  10. 10
    Operadores lógicos de comparación
    8 minutos
  11. 11
    Comparación estricta con ===
    3 minutos
  12. 12
    Operadores lógicos y proposicionales
    8 minutos
  13. 13
    Invocación de funciones
    10 minutos
  14. 14
    Fundamentos de funciones
    9 minutos
  15. 15
    Cadenas de caracteres
    8 minutos
  16. 16
    Entrada y salida estandar de la mano de gets y puts
    9 minutos
  17. 17
    Concatenar e interpolar strings
    9 minutos
  18. 18
    Código fuente en archivos
    9 minutos
  19. 19
    Condicional IF y bloques DO-END
    11 minutos
  20. 20
    IFs anidados, UNLESS y COND
    12 minutos
  21. 21
    Definición de funciones
    11 minutos
  22. 22
    Fundamentos de compilación de módulos
    6 minutos
  23. 23
    Guardas
    8 minutos
  24. 24
    Funciones anónimas
    7 minutos
  25. 25
    Capturar funciones
    4 minutos
  26. 26
    Invocación de funciones dentro del mismo módulo
    7 minutos
  27. 27
    Tuplas
    8 minutos
  28. 28
    Introducción al pattern matching
    8 minutos
  29. 29
    Pattern matching en funciones
    11 minutos
  30. 30
    Las tuplas :ok, :error
    7 minutos
  31. 31
    case
    10 minutos
  32. 32
    Operador pin
    7 minutos
  33. 33
    Pattern matchings y recursividad
    5 minutos
  34. 34
    Listas
    9 minutos
  35. 35
    Operadores y funciones de lista
    10 minutos
  36. 36
    Keyword lists: listas de palabras clave
    8 minutos
  37. 37
    Mapas
    7 minutos
  38. 38
    Pattern matching de mapas y keyword lists
    6 minutos
  39. 39
    Operadores y funciones para mapas y keyword lists
    5 minutos
  40. 40
    Estructuras con defstruct
    11 minutos
  41. 41
    Bitstrings
    11 minutos
  42. 42
    Charlists
    10 minutos
  43. 43
    Funciones de alto orden en Elixir
    5 minutos
  44. 44
    Uso de la función filter
    10 minutos
  45. 45
    Uso de la función map
    7 minutos
  46. 46
    Uso de la función reduce
    9 minutos
  47. 47
    Pipelines
    11 minutos
  48. 48
    Rangos y Streams
    11 minutos
  49. 49
    Funciones recursivas con listas
    14 minutos