Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
what is this elixir thing everyone is talking a...
Search
José Tomás Albornoz
September 16, 2016
Programming
150
0
Share
what is this elixir thing everyone is talking about
some of my fav features of elixir
lightning talk for CodeDaze.io on September 16th, 2016
José Tomás Albornoz
September 16, 2016
More Decks by José Tomás Albornoz
See All by José Tomás Albornoz
Things I learned when working on a small startup
eljojo
0
98
Introduction to Dokku
eljojo
1
160
Baruco 2014: How I Built My Own Twitch-Plays-Pokémon
eljojo
0
1.1k
Introduction to Docker
eljojo
0
250
Other Decks in Programming
See All in Programming
[RubyKaigi 2026] Require Hooks
palkan
1
320
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
400
From Formal Specification to Property Based Test
ohbarye
0
2.5k
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
350
Kingdom of the Machine
yui_knk
2
1.5k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
640
Agent Skills を社内で育てる仕組み作り
jackchuka
1
1.9k
ついに来た!本格的なマルチクラウド時代の Google Cloud
maroon1st
0
420
【ディップ|26年新卒研修資料】TDD実装演習
dip_tech
PRO
0
180
Firefoxにコントリビューションして得られた学び
ken7253
2
160
エラー処理の温故知新 / history of error handling technic
ryotanakaya
7
1.9k
JCON - Create Agentic AI Apps, The Easy Way!
kdubois
1
110
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
320
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
230
Six Lessons from altMBA
skipperchong
29
4.2k
Utilizing Notion as your number one productivity tool
mfonobong
4
300
The Limits of Empathy - UXLibs8
cassininazir
1
330
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
540
How to Talk to Developers About Accessibility
jct
2
200
The Mindset for Success: Future Career Progression
greggifford
PRO
0
330
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
150
Docker and Python
trallard
47
3.8k
Done Done
chrislema
186
16k
Documentation Writing (for coders)
carmenintech
77
5.3k
Transcript
what is this elixir thing everyone's talking about by jojo
what is elixir
elixir is a functional language
created by José Valim
that runs on the erlang vm
pattern matching iex(1)> [first, second] = [1, 2] [1, 2]
iex(2)> first 1
pattern matching iex(2)> [first, second] = [1,2,3] ** (MatchError) no
match of right hand side value: [1, 2, 3]
pattern matching iex(1)> payload = %{username: "eljojo", stuff: true} %{stuff:
true, username: "eljojo"} iex(2)> %{username: name} = payload %{stuff: true, username: "eljojo"} iex(3)> name "eljojo"
function overloading def make_sound(:cow) do IO.puts "MOOOOOOOOO" end def make_sound(:cat)
do IO.puts "MEEEOOWW" end def make_sound(_) do IO.puts "¯\_(ϑ)_/¯" end
function overloading def make_sound(%{animal: :cow}) do IO.puts "MOOOOOOOOO" end def
make_sound(%{animal: :cat}) do IO.puts "MEEEOOWW" end def make_sound(%{animal: name}) do IO.puts "not sure how to #{name} ¯\_(ϑ)_/¯" end
we also got guards def page_ops(downtime) when downtime < 10
do IO.puts "¯\_(ϑ)_/¯" end def page_ops(downtime) when downtime >= 10 do PagerDuty.notify(whatever) end
pipe operator def add_one(number), do: number + 1 def multiply_by_three(number),
do: number * 3 multiply_by_three(add_one(1)) # => 6
pipe operator def add_one(number), do: number + 1 def multiply_by_three(number),
do: number * 3 1 |> add_one |> multiply_by_three # => 6
processes + messages current_process = self() spawn_link(fn -> send(current_process, {:msg,
"hello world"}) end) receive do {:msg, contents} -> IO.puts contents end
processes + messages # machine one receive do {:msg, contents}
-> IO.puts contents end # machine two process_name = "$MACHINE_ONE" spawn_link(fn -> send(process_name, {:msg, "yo!"}) end)
what is phoenix
A productive web framework that does not compromise speed and
maintainability.
it's basically rails for elixir, but cooler
validations def changeset(struct, params \\ %{}) do struct |> cast(params,
[:email_address, :first_name]) |> validate_required([:email_address]) end def changeset_after_signup(struct, params \\ %{}) do changeset(struct, params) |> validate_required([:first_name]) end
we're hiring!
@eljojo