Introduction to Elixir


About Inaka


-
Founded in 2010.
-
Acquired by Erlang Solutions in 2014.
-
End-to-end applications with Erlang, Ruby, Web, iOS and Android components.
-
Highly concurrent application servers such as Whisper and TigerText.
-
Active contributors to the open-source community.
What is Elixir?


Functional Language for the Erlang VM
Ruby-like syntax
Erlang-like semantics (seamless interop)
Clojure-like philosophy
iex


Interactive Elixir

mix


-
Create new project
-
Compile
-
Run tests
-
Manage Deps
-
& More
Building Blocks


-
Data Types
-
Pattern Matching
-
Modules & Functions
-
Processes


Data Types
-
Integer & Float
-
String, Binary & Char list
-
Atom (& alias)
-
Boolean
-
Tuple (Immutable)
-
List (Immutable)
-
Map (Immutable)
-
Anonymous Function
Building Blocks


Pattern Matching
Building Blocks
=

Building Blocks


Modules & Functions
defmodule Greeter do
def talk(name) do
IO.puts(greeting name)
end
defp greeting(name) do
"Hello #{name}"
end
end
Building Blocks


Processes
-
spawn[1, 3]
-
send & receive
-
Link & Monitor
-
Task


Standard Library
-
Kernel
-
IO
-
Enum
-
String


Elixir's "Specials"
-
Pipe Operator
-
Structs
-
Protocols
-
Macros

What's left?
-
Exceptions
-
List Comprehensions
-
Behaviors
-
OTP
-
GenServer
-
GenEvent
-
Application & Supervisor
-
-
ETS
-
& More



Thank you!
Intro to Elixir
By Juan Facorro
Intro to Elixir
- 859