SlideShare uma empresa Scribd logo
por Fábio Cerqueira
Python Funcional
Python possibilita, além dos paradigmas mais tradicionais, trabalhar com o
paradigma de programação funcional.

•Vantagens:
   • Redução do código-fonte
   • Maior velocidade
   • Em alguns casos facilita implementações

• Desvantagens:
    • Maior possibilidade de gerar códigos obscuros
    • Não é uma paradigma muito difundido


A abordagem usada neste curso para programação funcional em
python não tem intenção de aprofundar no assunto, mas apenas mostrar
algumas ferramentas que a linguagem apresenta para seu
uso.
Expressões lambda
Expressões lambdas são funções que não precisam ser nomeadas,
funções anônimas.



Sintaxe:

lambda arg1,arg2,arg3...,argN: expressão




As expressões lambda são úteis quando usadas com as funções
filter,map,reduce do python.
Usando lambda
Exemplos do uso de funções lambda comparando com sua forma
tradicional.
map
A função map é usada quando precisa-se aplicar uma determinada
função em todos os itens de uma ou mais sequência.

map(function, sequence[, sequence, ...]) -> list

Exemplo:
map completo
A função map aceita mais uma sequência. Veja os exemplos:




Note que como pow recebe no mínimo dois parâmetros quando temos
passar o map com pow em uma lista deu erro.
reduce
A reduce aplica uma função sobre uma sequência e vai acumulando o
valor de retorno da função a partir de um valor inicial.
Sintaxe:
reduce(function, sequence[, initial]) -> value
Exemplos:
filter
O filter opera a função passa sobre a lista, gerando uma outras lista
quando o retorno da função for verdadeiro.
Sintaxe:
filter(function or None, sequence) -> list, tuple, or string
Exemplos:
zip
A zip retorna uma lista de tuplas associando para cada item das
sequências passadas como parâmetro.
Sintaxe:
zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
Exemplos:




Note que no primeiro exemplo a quantidade de tuplas na lista de retorno
é a quantidade de elementos da menor sequência.
Exemplos
Alguns exemplos do uso das ferramentas funcionais do python.
• Gerar lista dos primos entre 2 e 50




• Geras os 10 primeiros valores da sequência de fibonnaci
Exemplos
Gerando o fractal conjunto de mandelbrot modo texto.




Alguém entende? O.o
Conjunto de Mandelbrot
Resultado do exemplo anterior

Mais conteúdo relacionado

Mais procurados

Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de software
leopp
 
Scratch cap-1
Scratch cap-1Scratch cap-1
Scratch cap-1
RuiTobiasDBCarvalho
 
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisSistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Charles Fortes
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
Denis L Presciliano
 
Diagrama de Casos de Uso
Diagrama de Casos de UsoDiagrama de Casos de Uso
Diagrama de Casos de Uso
Nécio de Lima Veras
 
Modelo caso uso
Modelo caso usoModelo caso uso
Modelo caso uso
Gabriel Faustino
 
Estrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas EstáticasEstrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas Estáticas
Leinylson Fontinele
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
Pacc UAB
 
Aula 05 sistemas de numeração
Aula 05   sistemas de numeraçãoAula 05   sistemas de numeração
Aula 05 sistemas de numeração
Daniel Moura
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
Mario Sergio
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
Guilherme
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
Mariana Camargo
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Leinylson Fontinele
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
Rademaker Siena
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
Daniel Brandão
 
Plano de Ensino - Bando de Dados
Plano de Ensino - Bando de DadosPlano de Ensino - Bando de Dados
Plano de Ensino - Bando de Dados
Vitor Hugo Melo Araújo
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
Gercélia Ramos
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
Jailson Torquato
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
Priscila Mayumi
 
Banco de Dados (parte 01)
Banco de Dados (parte 01)Banco de Dados (parte 01)
Banco de Dados (parte 01)
Alex Camargo
 

Mais procurados (20)

Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de software
 
Scratch cap-1
Scratch cap-1Scratch cap-1
Scratch cap-1
 
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas OperacionaisSistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
Sistemas Operacionais - Aula 2 - Visão Geral de Sistemas Operacionais
 
Programação Orientada a objetos em Java
Programação Orientada a objetos em JavaProgramação Orientada a objetos em Java
Programação Orientada a objetos em Java
 
Diagrama de Casos de Uso
Diagrama de Casos de UsoDiagrama de Casos de Uso
Diagrama de Casos de Uso
 
Modelo caso uso
Modelo caso usoModelo caso uso
Modelo caso uso
 
Estrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas EstáticasEstrutura de Dados - Aula 06 - Pilhas Estáticas
Estrutura de Dados - Aula 06 - Pilhas Estáticas
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Aula 05 sistemas de numeração
Aula 05   sistemas de numeraçãoAula 05   sistemas de numeração
Aula 05 sistemas de numeração
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Plano de Ensino - Bando de Dados
Plano de Ensino - Bando de DadosPlano de Ensino - Bando de Dados
Plano de Ensino - Bando de Dados
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 
Banco de Dados (parte 01)
Banco de Dados (parte 01)Banco de Dados (parte 01)
Banco de Dados (parte 01)
 

Destaque

Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
Rodrigo Hübner
 
REST com Python
REST com PythonREST com Python
REST com Python
fabiocerqueira
 
Python no ensino de programação
Python no ensino de programaçãoPython no ensino de programação
Python no ensino de programação
Givanaldo Rocha
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem Python
Giancarlo Silva
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
Osvaldo Santana Neto
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
Grupython Ufla
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
Jean Lopes
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
Luciano Ramalho
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
richardsonlima
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
Victor Marcelino
 
Testes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e DjangoTestes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e Django
fabiocerqueira
 
Arduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware LivreArduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware Livre
Álvaro Justen
 
Python no Celular
Python no CelularPython no Celular
Python no Celular
iuridiniz
 
Dados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaDados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira Pythônica
Álvaro Justen
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
Álvaro Justen
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
Giancarlo Silva
 
Programação funcional reativa
Programação funcional reativaProgramação funcional reativa
Programação funcional reativa
Erich Oliveira
 
Por que escolher Python?
Por que escolher Python?Por que escolher Python?
Por que escolher Python?
Igor Leroy
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem Python
Alex Tercete
 
Sokoban com PyS60
Sokoban com PyS60Sokoban com PyS60
Sokoban com PyS60
fabiocerqueira
 

Destaque (20)

Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
REST com Python
REST com PythonREST com Python
REST com Python
 
Python no ensino de programação
Python no ensino de programaçãoPython no ensino de programação
Python no ensino de programação
 
Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem Python
 
Curso de Python e Django
Curso de Python e DjangoCurso de Python e Django
Curso de Python e Django
 
Apresentação python fábio jr alves
Apresentação python   fábio jr alvesApresentação python   fábio jr alves
Apresentação python fábio jr alves
 
Python - Guia de bolso
Python - Guia de bolsoPython - Guia de bolso
Python - Guia de bolso
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Python para iniciantes
Python para iniciantesPython para iniciantes
Python para iniciantes
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
 
Testes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e DjangoTestes, deploy e integração continua com Python e Django
Testes, deploy e integração continua com Python e Django
 
Arduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware LivreArduino: Brincando de eletrônica com Python e Hardware Livre
Arduino: Brincando de eletrônica com Python e Hardware Livre
 
Python no Celular
Python no CelularPython no Celular
Python no Celular
 
Dados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira PythônicaDados tabulares: A Maneira Pythônica
Dados tabulares: A Maneira Pythônica
 
Arduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremoArduino + Python: produtividade ao extremo
Arduino + Python: produtividade ao extremo
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Programação funcional reativa
Programação funcional reativaProgramação funcional reativa
Programação funcional reativa
 
Por que escolher Python?
Por que escolher Python?Por que escolher Python?
Por que escolher Python?
 
Introdução à linguagem Python
Introdução à linguagem PythonIntrodução à linguagem Python
Introdução à linguagem Python
 
Sokoban com PyS60
Sokoban com PyS60Sokoban com PyS60
Sokoban com PyS60
 

Semelhante a Python - Programação funcional

Pythonfuncional
PythonfuncionalPythonfuncional
Pythonfuncional
Rodrigo Lira
 
Python Funcional
Python FuncionalPython Funcional
Python Funcional
pugpe
 
Desmistificando Built-in Functions, Lambda e List Comprehension...
Desmistificando Built-in Functions, Lambda e List Comprehension...Desmistificando Built-in Functions, Lambda e List Comprehension...
Desmistificando Built-in Functions, Lambda e List Comprehension...
Matheus Pereira
 
Introdução ao paradigma funcional com scala
Introdução ao paradigma funcional com scalaIntrodução ao paradigma funcional com scala
Introdução ao paradigma funcional com scala
Gustavo Fernandes Dos Santos
 
Python
PythonPython
Scheme
SchemeScheme
Scheme
danielppgua
 
Funções em C
Funções em CFunções em C
Funções em C
Elaine Cecília Gatto
 
Linguagem Go
Linguagem GoLinguagem Go
Linguagem Go
Natã Melo
 
Paradigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellParadigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo Haskell
Sérgio Souza Costa
 
Material_ Módulo 3_Python I.pptx.pdf - Python
Material_ Módulo 3_Python I.pptx.pdf - PythonMaterial_ Módulo 3_Python I.pptx.pdf - Python
Material_ Módulo 3_Python I.pptx.pdf - Python
LorrayneSilva26
 
PHP Básico - Parte 3
PHP Básico - Parte 3PHP Básico - Parte 3
PHP Básico - Parte 3
Marcus Camargo
 
Curso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsCurso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e Streams
Helder da Rocha
 
Programação funcional tipada: uma introdução
Programação funcional tipada: uma introduçãoProgramação funcional tipada: uma introdução
Programação funcional tipada: uma introdução
Arthur Xavier
 
Programação funcional
Programação funcionalProgramação funcional
Programação funcional
LP Maquinas
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
Julio Cesar Eiras Melanda
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
Gabriel Schade Cardoso
 
Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rust
Bruno Rocha
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
Jocelma Rios
 
Linguagem lua
Linguagem luaLinguagem lua
Linguagem lua
Paulo Henrique
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
Marco Mendes
 

Semelhante a Python - Programação funcional (20)

Pythonfuncional
PythonfuncionalPythonfuncional
Pythonfuncional
 
Python Funcional
Python FuncionalPython Funcional
Python Funcional
 
Desmistificando Built-in Functions, Lambda e List Comprehension...
Desmistificando Built-in Functions, Lambda e List Comprehension...Desmistificando Built-in Functions, Lambda e List Comprehension...
Desmistificando Built-in Functions, Lambda e List Comprehension...
 
Introdução ao paradigma funcional com scala
Introdução ao paradigma funcional com scalaIntrodução ao paradigma funcional com scala
Introdução ao paradigma funcional com scala
 
Python
PythonPython
Python
 
Scheme
SchemeScheme
Scheme
 
Funções em C
Funções em CFunções em C
Funções em C
 
Linguagem Go
Linguagem GoLinguagem Go
Linguagem Go
 
Paradigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellParadigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo Haskell
 
Material_ Módulo 3_Python I.pptx.pdf - Python
Material_ Módulo 3_Python I.pptx.pdf - PythonMaterial_ Módulo 3_Python I.pptx.pdf - Python
Material_ Módulo 3_Python I.pptx.pdf - Python
 
PHP Básico - Parte 3
PHP Básico - Parte 3PHP Básico - Parte 3
PHP Básico - Parte 3
 
Curso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e StreamsCurso de Java: Introdução a lambda e Streams
Curso de Java: Introdução a lambda e Streams
 
Programação funcional tipada: uma introdução
Programação funcional tipada: uma introduçãoProgramação funcional tipada: uma introdução
Programação funcional tipada: uma introdução
 
Programação funcional
Programação funcionalProgramação funcional
Programação funcional
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
 
Escrevendo modulos python com rust
Escrevendo modulos python com rustEscrevendo modulos python com rust
Escrevendo modulos python com rust
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Linguagem lua
Linguagem luaLinguagem lua
Linguagem lua
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 

Python - Programação funcional

  • 2. Python Funcional Python possibilita, além dos paradigmas mais tradicionais, trabalhar com o paradigma de programação funcional. •Vantagens: • Redução do código-fonte • Maior velocidade • Em alguns casos facilita implementações • Desvantagens: • Maior possibilidade de gerar códigos obscuros • Não é uma paradigma muito difundido A abordagem usada neste curso para programação funcional em python não tem intenção de aprofundar no assunto, mas apenas mostrar algumas ferramentas que a linguagem apresenta para seu uso.
  • 3. Expressões lambda Expressões lambdas são funções que não precisam ser nomeadas, funções anônimas. Sintaxe: lambda arg1,arg2,arg3...,argN: expressão As expressões lambda são úteis quando usadas com as funções filter,map,reduce do python.
  • 4. Usando lambda Exemplos do uso de funções lambda comparando com sua forma tradicional.
  • 5. map A função map é usada quando precisa-se aplicar uma determinada função em todos os itens de uma ou mais sequência. map(function, sequence[, sequence, ...]) -> list Exemplo:
  • 6. map completo A função map aceita mais uma sequência. Veja os exemplos: Note que como pow recebe no mínimo dois parâmetros quando temos passar o map com pow em uma lista deu erro.
  • 7. reduce A reduce aplica uma função sobre uma sequência e vai acumulando o valor de retorno da função a partir de um valor inicial. Sintaxe: reduce(function, sequence[, initial]) -> value Exemplos:
  • 8. filter O filter opera a função passa sobre a lista, gerando uma outras lista quando o retorno da função for verdadeiro. Sintaxe: filter(function or None, sequence) -> list, tuple, or string Exemplos:
  • 9. zip A zip retorna uma lista de tuplas associando para cada item das sequências passadas como parâmetro. Sintaxe: zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)] Exemplos: Note que no primeiro exemplo a quantidade de tuplas na lista de retorno é a quantidade de elementos da menor sequência.
  • 10. Exemplos Alguns exemplos do uso das ferramentas funcionais do python. • Gerar lista dos primos entre 2 e 50 • Geras os 10 primeiros valores da sequência de fibonnaci
  • 11. Exemplos Gerando o fractal conjunto de mandelbrot modo texto. Alguém entende? O.o
  • 12. Conjunto de Mandelbrot Resultado do exemplo anterior