introdução a programação funcional com elixir

Post on 15-Feb-2017

57 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introdução a programação

funcional com Elixir

Arthur Braga Alfredo

O que é programaçãofuncional?

É um paradigma de programação que trata acomputação como funções matemáticas e que evita

estados e dados mutáveis

Um pouco de história

Programação funcional foi inventada em 1957Antes da orientação a objetosAntes da programação estruturada

O Lisp foi criado no MIT em 1960ISWIM em 1966SASL em 1973Miranda e Erlang em 1986Haskell em 1992

Quais eram os objetivos?

Programas mais simplesPoucos problemas de concorrênciaNão precisa se preocupar com estado

Porque não deu certonaquela época?

Memória era muito cara

Os computadores eram lentos

O que mudou?

Criada por José Valim

Objetivo

Criar uma linguagem que que possibilitasse altaperformance, extensibilidade e produtividade e que

rodasse na VM do Erlang.

Porque Erlang?

Criado em 1986 para resolver problemas na área detelefonia.Altamente tolerante a falhas (Let it crash).Altamente concorrenteFácil de escalar

Chega de história...

Imutabilidade

Uma vez que um objeto foi criado, ele não pode seralterado

Single matching

A variável só pode receber valor uma vez

Re-binding

Posso reutilizar uma variável para apontar para outrovalor da memória

First-class functions

Funções que podem ser armazenadas em variáveis

Higher-order functions

Funções que podem receber outras funções comoparâmetro

Pure functions

Funções sem efeitos colateraisNão acessam bancoNão acessam arquivosVão sempre retornar os mesmo valores se osmesmos parâmetros forem passados

Closures

Funções que pode acessar variáveis fora do seu escopo

Recursão

Funções que chamam elas mesmas

Onde aprender mais?

Onde aprender mais?

http://elixir-lang.org/

Duvidas?

Fontes

https://medium.com/@jugoncalves/functional-programming-should-be-your-1-priority-for-2015-47dd4641d6b9#.4cvicgxavhttp://www.elixirdose.com/post/basicfphttp://www.sitepoint.com/functional-programming-techniques-with-ruby-part-i/https://speakerdeck.com/stratus3d/foray-into-functional-programming-with-elixirhttps://speakerdeck.com/mfilej/elixir-for-rubyistshttps://www.youtube.com/watch?v=7Zlp9rKHGD4

Obrigado

Arthur Braga Alfredoarthurbalfredo@gmail.com

top related