immutability in mutable world : Elixir 

@maqboolism

https://www.maqbool.net


About Me

 

  • Software Dev Intern @CampusBox
  • Final Year Student @MSI
  • Programming languages enthusiast 
  • Open Source Contributor 
  • Core volunteer @Elixir Delhi
  • Founder of  Turing Code Camp 
  • Hackathons Fanatic

What is Elixir?

  • Concurrency

  • isolation

  • resilience

  • scalability

credit: Elixir in Action by Saša Jurić from chapter 1

 

Supervisior

S

S

S

W

W

W

W

W

W

Pipe Operator (|>)

other_function() |> new_function() |> baz() |> bar() |> foo()​

Pattern Matching(=)

Metaprogramming

 

def defmacro case cond defmodule defp defstruct ...

quote 

unquote

Credit:    www.elixirschool.com

Macros

credit:    www.elixirschool.com
defmodule OurMacro do
  defmacro unless(expr, do: block) do
    quote do
      if !unquote(expr), do: unquote(block)
    end
  end
end



iex> require OurMacro
nil
iex> OurMacro.unless true, do: "Hi"
nil
iex> OurMacro.unless false, do: "Hi"
"Hi"

OTP

  • OTP stands for Open Telecom Platform
Image credit : http://learnyousomeerlang.com/what-is-otp

Elixir Delhi Community

  • meetup.com/Elixirlang-Delhi-NCR/
  • t.me/elixirdelhi
  • twitter.com/elixirdelhi
  • facebook.com/ElixirDelhi/
Image credit : https://elixirforum.com/u/romariolopezc/