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

Introdução ao Elixir

Acfa202cc869d143b760cff76659cb64?s=47 Joel Jucá
November 08, 2019

Introdução ao Elixir

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

Acfa202cc869d143b760cff76659cb64?s=128

Joel Jucá

November 08, 2019
Tweet

Transcript

  1. Introdução ao Elixir Por Joel Jucá

  2. 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
  3. 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
  4. Elixir 101: shell interativo Os primeiros passos com a linguagem

    podem ser dados através do shell interativo (REPL) IEx: $ iex
  5. 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"]
  6. Módulos # hello.ex defmodule Hello def hello do "Hello, there!"

    end end
  7. 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
  8. Pattern matching x = 1 1 = x

  9. Operador match nome_sobrenome = ["Joel", "Juca"] [nome, "Juca"] = nome_sobrenome

    ["Joel", sobrenome] = nome_sobrenome
  10. 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
  11. Material de estudos Primeiros passos: https://elixir-lang.org/getting-started/introduction.html Referência rápida: https://learnxinyminutes.com/docs/elixir/

  12. Obrigado! Joel Jucá GitHub: /joelwallis Twitter: @joelwallis1