Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introdução ao Elixir

Joel Jucá
November 08, 2019

Introdução ao Elixir

Apresentação ministrada no 2º Meetup Elug CE, realizado na Agenda Edu.

Joel Jucá

November 08, 2019
Tweet

More Decks by Joel Jucá

Other Decks in Programming

Transcript

  1. O projeto Criada em 2011 por José Valim (sim, um

    brasileiro!) Executa na máquina virtual Erlang (BEAM) Capaz de usar código e bibliotecas Erlang Excelente kit de ferramentas (Mix, Hex, etc.) Framework web de excelente qualidade, inspirado no Ruby on Rails (Phoenix) Ecossistema novo, mas moderno e funcional
  2. A linguagem Compilada, funcional, de propósito geral Destaque para funções

    de alta ordem e recursão Pattern matching e guards (YES!) Mesmo modelo e conceitos de concorrência do Erlang/BEAM
  3. Elixir 101: shell interativo Os primeiros passos com a linguagem

    podem ser dados através do shell interativo (REPL) IEx: $ iex
  4. Tipos básicos # Comentários Ruby-like # Strings e charlists "Hello,

    Elixir!" # string "Hello, Elixir!" # charlist (lista de números/code points) # Números 123 # integer 123_456 # integer 0x7B # integer 12.3 # Float # Átomos (atoms; o mesmo que symbols em Ruby) :elixir_rocks # Tuplas result = {:ok, "Tuplas com um atom no início são bem comuns"} # Listas langs = ["C", "Elixir", "Go", "Java", "Python"]
  5. Funções Funções são identificadas por seu nome e sua aridade.

    # Funções nomeadas existem dentro de módulos defmodule Hello # sum/2 def sum(x, y) do x + y end # hello/0 def hello do IO.puts sum(10, 15) # => 25 end end
  6. Pattern matching em funções defmodule Hello # multiply/0 def multiply(10,

    y) do IO.puts "Somar qualquer número a dez é muito fácil!" 10 + y end def multiply(x, 0) do IO.puts "Ops! Qualquer número multiplicado por zero é zero." 0 end def multiply(x, y) do x * y end end