Todos los vídeos

Operadores y funciones para mapas y keyword lists

Veamos qué operadores tenemos a nuestra disposición para trabajar con keyword lists. Con mapas es un poco más complicado porque no nos vale el operador ++, pero tenemos el módulo Map para hacer todo este tipo de cosas.

Pattern matching de mapas y keyword lists

Ambas estructuras nos permiten usar el pattern matching para casar estructuras en función de si tienen o no elementos, además de poder sacar por el camino el valor de estas claves.

Mapas

Un mapa es una estructura asociativa que permite asociar dos expresiones entre sí formando un sistema clave-valor: toda expresión término (clave) tiene una definición (valor). Como las keyword lists, por otra parte. La diferencia es que los mapas nos dan más juego.

Listas de palabras clave

La primera estructura de datos asociativa que vamos a ver es la lista de palabras clave o keyword list, que permite asociar valores a átomos. Aquí su construcción, consulta con el operador [:x], y una particularidad importante sobre do, end y else que tal vez te ayude mucho.

Operadores y funciones de lista

El operador concatenación y el operador diferencia, y también algunas de mis funciones favoritas del módulo List y del módulo Enum, para poder trabajar con listas.

Listas

Las listas son una estructura de datos que en Elixir permite agrupar de forma dinámica múltiples elementos. A diferencia de las tuplas, tienen una estructura diferente compuesta de cabeza y cola, lo cual nos puede dar juego en algunos casos, pero sin olvidarnos de sus consecuencias.

Recursividad (volumen 1)

En la recursividad, una función se llame a sí misma con distintos parámetros. La ventaja de disponer de pattern matching en Elixir es que podemos escribir código recursivo de una forma muy simple en la que los casos base se teclean como constantes o usando guardas.

pin

El operador pin sirve para fijar los elementos que hay a la izquierda de un igual en Elixir, de modo que deje de verlos como incógnitas a despejar durante un matcheo y lo vea como variables ya declaradas cuyo valor tiene que forma parte del casamiento en el despeje.

case

case es una estructura del lenguaje que permite hacer una tabla de matcheos mediante la cual es posible escoger una de entre muchas expresiones resultantes en función de cuál es el primer matcheo compatible.

Las tuplas :ok, :error

Al hilo de lo del pattern matching y el destructuring de tuplas, en las funciones no puras de Elixir que pueden provocar errores, un patrón muy común es envolver los retornos en algún tipo de tupla que permita devolver, no sólo el retorno de la función, sino también si ha salido bien o mal.

Por duración
Por tema