Las palabras clave nil, true y false

nil, true y false son tres átomos tan importantes que los vas a poder escribir sin tener que poner el caracter : delante de ellos. nil se usa para representar los valores nulos (o sea, la ausencia de dato); mientras que true y false se emplean para representar lógicos, es decir, el concepto de verdadero y el concepto de falso.

Entre todos los átomos que podemos utilizar en Elixir, hay tres que tienen un papel muy especial por la semántica que representan y la frecuencia con la que los usamos: NIL, TRUE y FALSE. Estos átomos nos ayudan a manejar conceptos fundamentales como la ausencia de dato, la verdad y la falsedad, y son clave para controlar el flujo de nuestros programas.

Empezamos con el átomo NIL, que funciona como un comodín para representar que un dato no existe o no está disponible. Imaginemos que estamos desarrollando un programa para una estación meteorológica que mide la cantidad de lluvia con un pluviómetro. Si el pluviómetro funciona correctamente, podemos tener valores como cero, cincuenta o cien, dependiendo de la cantidad de precipitación. Pero, ¿qué pasa si el dispositivo se rompe y no podemos obtener una lectura? En ese caso, no podemos simplemente poner cero, porque eso indicaría que no ha llovido, y no que el dato está ausente. Aquí es donde entra en juego NIL, que representa esa ausencia de información, ese “no hay dato” que necesitamos reflejar.

NIL es un término que proviene del inglés y que muchos lenguajes de programación tienen con nombres similares, como null. En Elixir, es tan importante que podemos escribirlo sin los dos puntos que normalmente preceden a los átomos, simplemente como NIL. Así, cuando queremos indicar que una variable no tiene valor o que una función no devuelve nada útil, podemos asignar o devolver NIL.

Los otros dos átomos especiales son TRUE y FALSE, que representan los valores booleanos de verdad y falsedad. Al igual que NIL, estos átomos se escriben sin dos puntos y son palabras clave en Elixir. Los usamos para expresar condiciones que solo pueden ser sí o no, verdadero o falso. Por ejemplo, si queremos saber si ha llovido o no, podemos usar estos valores para representar esa información.

Además, Elixir nos proporciona operadores lógicos que nos permiten hacer preguntas sobre nuestros datos y obtener como resultado TRUE o FALSE. Por ejemplo, si tenemos una variable X con valor 40, podemos preguntar si X es mayor que 20 o si es menor que 100. Estas expresiones devuelven uno de los dos átomos booleanos según se cumpla o no la condición.

Veamos un ejemplo concreto con el operador menor que:

X = 40
X < 100
# Esto devuelve TRUE porque 40 es menor que 100

También podemos usar el operador de igualdad doble == para comprobar si dos valores son iguales:

X = 40
X == 40
# Devuelve TRUE

X == 20
# Devuelve FALSE

Esto nos permite hacer comparaciones y tomar decisiones en nuestro código basándonos en si las condiciones son verdaderas o falsas. De hecho, podemos comprobar que TRUE, FALSE y NIL son átomos porque podemos compararlos entre sí y ver que se comportan como tales:

TRUE == TRUE
# TRUE

NIL == NIL
# TRUE

Si queremos confirmar que estos valores son átomos, podemos usar funciones que nos lo indiquen, pero lo importante es entender que estos tres átomos son fundamentales para manejar la lógica y el control de flujo en Elixir.

Así, con NIL representamos la ausencia de dato, con TRUE afirmamos que una condición se cumple, y con FALSE indicamos que no se cumple. Estos tres átomos, junto con los operadores lógicos, forman la base para construir expresiones condicionales y controlar el comportamiento de nuestros programas de manera clara y precisa.

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