Workshop de Introdução ao Clojure

Semana passada finalizamos o workshop de Introdução a programação funcional com o Clojure na empresa, falamos um pouco sobre conceitos de programação funcional, depois sobre conceitos de clojure, tentando explicar o porque dos parênteses. Após mostrar os conceitos, abordamos as principais características da linguagem, indo desde um (+ 1 2 3) até macros.

Fazendo um overview de tudo que falamos, posso destacar alguns tópicos, como:

O que é Programação Funcional:

  • Paradigma de programação
  • Funções matemáticas
  • Alto nível de abstração
  • Funções que computam um resultado por meio de valores de entradas

LISP:

  • Família de linguagens concebidas por John McCarthy
  • Seu nome vem de LiSt Processing
  • A lista é um elemento fundamental na linguagem
  • Tanto dados e programas são listas

Clojure:

  • Criada por Rich Hickey em 2007
  • Dialeto mais famoso do LISP
  • Dinâmica
  • Fortemente tipada
  • Ideal para ambientes concorrentes
  • Não há distinção entre código e estruturas de dados
  • Possibilidade de extensão da linguagem com macros
  • Roda na JVM, V8, .NET

Ferramentas Essenciais para o Clojure:

  • Leiningen (gerenciador de build, dependências, tasks) comparando com o Ruby , pode ser exemplificado como uma mistura de bundler com rake
  • Read Eval Print Loop (REPL)

Introdução ao Clojure:

  • Operações numéricas (+ - * /)
  • Tipos básicos
  • Nomeação de valores
  • Controle de fluxo
  • Repetição
  • Standard Library

Avançando na Linguagem:

  • Lazy Sequences
  • Macros
  • Records
  • Protocols
  • Futures
  • Atoms
  • Destructuring
  • Memoize

Exercícios:

  • Conversão de DNA para RNA
  • Chamar API externa e calcular valores

Abordamos estes assuntos, caso queira saber mais, a apresentação está salva no link abaixo:

http://slides.com/sergioaugrod/clojure

Abraço.