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

  • 804