Skip to main content

Elixir: Pattern Matching - A Taste of Functional Programming

= is a match operator
After an initial assignment it then becomes a match assertion.
num = 1

To check the match assertion you can try this and it will be valid
1 = num

Furthermore, these are also valid:
[1] = [1]
[num] = [num]

[score1, score2, score3] = [89, 93, 87]
IO.puts score1  # 89
IO.puts score2  # 93
IO.puts score3  # 87

{:ok, value} = {:ok, 1000}
IO.puts value  # 1000

{:error, message} = {:error, "Uh oh"}
IO.puts message  # "Uh oh"

Error when matching:
{:foo, value} = {:bar, "nope"}

** (MatchError) no match of right hand side value: {:bar, "nope"}

Matching function arguments
Various function definitions and subsequent calls:
def sum_two_nums(num1, num2) do
  num1 + num2


def sum_two_nums(%{num1: num1, num2: num2}) do
  num1 + num2

sum_two_nums(%{num1: 2, num2: 5})

def sum_two_nums([num1, num2]) do
  num1 + num2


There's so much more you can do with pattern matching. It is one of the most powerful features you will learn and use when programming in Elixir.

Other posts in this series:


Popular posts from this blog

Setting up Sinatra and DataMapper on Windows

I use a MacBook Pro for work and pleasure on a day-to-day basis. Recently, I was asked to teach web students at a local high school. These students know html/graphics/flash/etc. The advanced students were ready for some server-side programming and database integration. I wanted the students to be able to get up and going quickly (for motivation reasons) and to create useful apps (using a database). I felt Sinatra to be a great fit for this. I created a Sinatra app for my uncle and his business. It was a joy to work with it and I was able to deploy quickly using Heroku . My experience of using Sinatra on my Mac was straightforward. Like most things using Ruby and Mac: it just worked. However, I found out the students at the high school use MS Windows. Fortunately, I have a Windows XP virtual machine running in VMWare so I could prepare that way. I used to teach computer science and web development at Spokane Community College and am aware of teaching Ruby in a Windows lab environm

AngularJS 101: A Beginner's Tutorial

Below is the PDF article I submitted to Software Developer's Journal  for their series they did on AngularJS. It was published in two of their issues: Nov. 15th 2013 -  AngularJS, Java and Drupal Tips & Tricks and Nov. 7th 2013 -  AngularJS Starter Kit . It's behind a paywall and thus hidden from most of the world. That sucks... which is why I'm posting my article here for all to see. Enjoy! AngularJS 101: A Beginner's Tutorial Github code for application built in the tutorial

PHP and Laravel Development: A 17-part video series