tdc2017 | poa trilha programcao funcional - paradigma funcional até leigos podem entender

20
Paradigma funcional até leigos podem entender THE DEVELOPER’S CONFERENCE 2017

Upload: tdc-globalcode

Post on 21-Jan-2018

36 views

Category:

Education


2 download

TRANSCRIPT

Page 1: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Paradigma funcional até leigos podem

entender

THE DEVELOPER’S CONFERENCE 2017

Page 2: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Leonardo AmarilhoSoftware Engineer | Agile Coach

[email protected]

github.com/leopoa

linkedin.com/in/leonardo-amarilho

Hello!

Page 3: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Observação:

Precisamos entender que o paradigma funcional é diferente!!!

Paradigma FuncionalO objetivo do funcional é imitar as funções matemáticas na maior extensão possível.

Benefícios:- Sem side-effect- Imutabilidade- Lazy evaluation

Page 4: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Se f é a função

então, a função h é

essa é uma versão currying de f

Currying Definição:

Page 5: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Se f é a função

então, a função h é

essa é uma versão currying de f

Currying Definição:

Page 6: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Transforma uma função com muitos argumentos, para que possa ser chamada como uma cadeia de funções de argumento único

Depois de aplicar currying...

Page 7: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Imagine como um mecânico descreveria um carro...

Page 8: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Ele dividiria o carro em pedaços menores, as peças. Explicaria que a união dessas peças formam o carro.

Uma maneira bem detalhada de explicar

Visão do mecânico

Page 9: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Partial ApplicationAplicação parcial envolve passar menos argumentos para uma função que recebe múltiplos argumentos. Esse processo cria uma nova função que recebe menos argumentos.

Page 10: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Você, que não é um engenheiro mecânico, tivesse que explicar o que é um carro.

Dessa maneira seria difícil e complicado.

Agora imagine

Page 11: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Muito mais simples falar que o carro tem: - Motor- Volante - 4 rodas - Bateria - etc...

Você não entrou em muitos detalhes, mesmo assim explicou o que é um carro.

Partial Application

Page 12: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

List Comprehension

É uma construção sintática, inspirada na compressão de conjuntos

É uma maneira concisa de manipular / construir uma lista

Porque usar?- É otimizado- É funcional- Reduzir tamanho de código

Page 13: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender
Page 14: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender
Page 15: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Neste problema, você deverá exibir uma lista de 1 a 20, um em cada linha, com as seguintes exceções:

- Números divisíveis por 3 deve aparecer como 'Fizz' ;

- Números divisíveis por 5 devem aparecer como 'Buzz' ;

- Números divisíveis por 3 e 5 devem aparecer como 'FizzBuzz' ao invés do número'.

Puzzle FizzBuzzHaskell

Page 16: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Ainda ficou com dúvidas?

Page 17: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Você é conservador

✗ Não gosta de aprender

✗ Nova tendência

✗ Esperar amadurecer

Page 18: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Orientação Objeto

int total = 0;for elem in elems {

total += elem;}return total;

Funcional

(0...10).sum();

elems.sum();

Desenvolvedor bom é pago por linha de código

Page 19: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Símbolos estranhos

->::

Conceitos Obscuros

CurryingMonads

Símbolos óbvios

!=++

Conceitos fáceis

HerançaPolimorfismo

Diferenças conceituais

Page 20: TDC2017 | POA Trilha Programcao Funcional - Paradigma funcional até leigos podem entender

Leonardo AmarilhoSoftware Engineer | Agile Coach

[email protected]

github.com/leopoa

linkedin.com/in/leonardo-amarilho

Thanks!