Átomos en Elixir

Un átomo es un tipo de datos primitivo en el que el valor de la expresión se corresponde con su nombre. Parece sencillo y realmente lo es, pero acostumbráos a verlos porque en Elixir se utilizan en muchísimas situaciones.

Los átomos en Elixir son un tipo de dato primitivo con una característica muy particular: su valor es exactamente su propio nombre. Esto puede sonar extraño al principio, pero es una construcción fundamental en Elixir que nos permite representar información de forma clara y eficiente.

Para declarar un átomo, simplemente escribimos dos puntos seguidos de un identificador. Por ejemplo, :hola es un átomo cuyo valor es literalmente :hola. Esta sintaxis sencilla nos permite crear palabras o etiquetas que podemos usar en nuestro código para codificar información. Además, podemos usar identificadores compuestos por varias palabras separadas por guiones bajos, como :hola_mundo o :buenos_días.

Una de las ventajas más importantes de los átomos es que, cada vez que declaramos uno nuevo, Elixir lo guarda en una tabla especial en memoria. Esto hace que las comparaciones entre átomos sean muy rápidas, ya que internamente se manejan como referencias a esa tabla. Por eso, los átomos son ideales para representar estados, etiquetas o categorías en nuestros programas cuando queremos que la ejecución sea eficiente.

Un ejemplo práctico donde podemos usar átomos es en la codificación del tipo de día en un programa que registre temperaturas medias. En lugar de usar números para representar estados como soleado, nublado o lluvioso, podemos usar directamente átomos como :soleado, :nublado o :lluvioso. Esto hace que el código sea mucho más legible y facilita la depuración, porque cuando inspeccionamos variables en la consola, vemos palabras claras en lugar de números que tendríamos que recordar qué significan.

Por ejemplo, en lugar de tener algo así:

# Usando números para representar tipos de día
tipo_dia = 0  # 0 = soleado, 1 = nublado, 2 = lluvioso

Podemos usar átomos para que el código sea más expresivo:

# Usando átomos para representar tipos de día
tipo_dia = :soleado

Esto nos ayuda a entender rápidamente qué representa cada valor sin necesidad de consultar documentación o comentarios.

Es importante recordar que, al igual que con los identificadores en Elixir, los átomos deben comenzar con una letra o un guion bajo, no con un número. Por ejemplo, :123hola no es válido, pero :hola123 sí lo es.

Los átomos son una construcción esencial en Elixir y se utilizan en muchas partes del lenguaje, a veces de formas muy peculiares. Su simplicidad y eficiencia los convierten en una herramienta poderosa para representar información y estados en nuestros programas, facilitando tanto la escritura como la depuración del código.

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