More Complex Matches

First, a little background syntax. Elixir lists can be created using square brackets containing a comma-separated set of values. Here are some lists:

 [ ​"​​Humperdinck"​, ​"​​Buttercup"​, ​"​​Fezzik"​ ]
 [ ​"​​milk"​, ​"​​butter"​, [ ​"​​iocane"​, 12 ] ]

Back to the match operator.

 iex>​ list = [ 1, 2, 3 ]
 [1, 2, 3]

To make the match true, Elixir bound the variable list to the list [1, 2, 3].

But let’s try something else:

 iex>​ list = [1, 2, 3]
 [1, 2, 3]
 iex>​ [a, b, c ] = list
 [1, 2, 3]
 iex>​ a
 1
 iex>​ b
 2
 iex>​ c
 3

Elixir looks for a way to make the value of the left side the same as the value of the right side. The left side is a list containing three variables, and the right is a list of three values, ...

Get Programming Elixir ≥ 1.6 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.