SlideShare uma empresa Scribd logo
1 de 24
Programação Funcional
      em Ruby
Programação
 Funcional...
       
Funcional?
      
Linguagens
     
Estilo Funcional
         
Funções como valores
Funções?
"First-class functions"
Valores são imutáveis
Prós
  
Transparência
 referencial
Expressividade
Paralelismo
Contras
    
xá ver...
Declarativa vs
 Imperativa
   Como vs O quê
E com Ruby...
       
E com Ruby...
       
Dá pra fazer um pouco
        disso :)
Use funções-valores
(blocos e lambdas)
Evite manter estado
Use as partes com
sabor de funcional da
... em Ruby
      
 
(mostrar os slides do Thinking Functionally em Ruby,
         partes de código - são fuderosos)

Mais conteúdo relacionado

Mais procurados

Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyDiego Rubin
 
Processo de Desenvolvimento de Software - Programação
Processo de Desenvolvimento de Software - ProgramaçãoProcesso de Desenvolvimento de Software - Programação
Processo de Desenvolvimento de Software - ProgramaçãoNatanael Simões
 
Dojo swift - Aula 1 - Introdução
Dojo swift - Aula 1 - IntroduçãoDojo swift - Aula 1 - Introdução
Dojo swift - Aula 1 - IntroduçãoGustavo Barbosa
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Julio Monteiro
 
Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x InterpretadasProcesso de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x InterpretadasNatanael Simões
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Emerson Macedo
 
JavaScript: agora é sério
JavaScript: agora é sérioJavaScript: agora é sério
JavaScript: agora é sérioLuciano Ramalho
 
Programação Funcional
Programação FuncionalProgramação Funcional
Programação FuncionalGabriel Milani
 

Mais procurados (12)

Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação Ruby
 
Processo de Desenvolvimento de Software - Programação
Processo de Desenvolvimento de Software - ProgramaçãoProcesso de Desenvolvimento de Software - Programação
Processo de Desenvolvimento de Software - Programação
 
Dojo swift - Aula 1 - Introdução
Dojo swift - Aula 1 - IntroduçãoDojo swift - Aula 1 - Introdução
Dojo swift - Aula 1 - Introdução
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
 
Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x InterpretadasProcesso de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
 
Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011Node.JS - Campus Party Brasil 2011
Node.JS - Campus Party Brasil 2011
 
JavaScript: agora é sério
JavaScript: agora é sérioJavaScript: agora é sério
JavaScript: agora é sério
 
Scala
ScalaScala
Scala
 
1.introducao java
1.introducao java1.introducao java
1.introducao java
 
Functional Programming - Scala
Functional Programming - ScalaFunctional Programming - Scala
Functional Programming - Scala
 
Programação Funcional
Programação FuncionalProgramação Funcional
Programação Funcional
 
05 automato finito com saida
05   automato finito com saida05   automato finito com saida
05 automato finito com saida
 

Destaque

Orientação a objetos na prática
Orientação a objetos na práticaOrientação a objetos na prática
Orientação a objetos na práticaTI Infnet
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Ambiente Livre
 
Pentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesPentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesAmbiente Livre
 
Automatizacao de tarefas
Automatizacao de tarefasAutomatizacao de tarefas
Automatizacao de tarefasarturramisio
 
Calc avancado
Calc avancadoCalc avancado
Calc avancadoJorge Vaz
 
Programacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareProgramacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareMarcio Junior Vieira
 
Unidade 7 - Estruturando Banco de Dados com o BR Office Base
Unidade 7  - Estruturando Banco de Dados com o BR Office BaseUnidade 7  - Estruturando Banco de Dados com o BR Office Base
Unidade 7 - Estruturando Banco de Dados com o BR Office BaseRogerio P C do Nascimento
 
Boas Práticas de Design em Aplicações Ruby on Rails
Boas Práticas de Design em Aplicações Ruby on RailsBoas Práticas de Design em Aplicações Ruby on Rails
Boas Práticas de Design em Aplicações Ruby on Railsrinaldifonsecanascimento
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicAmbiente Livre
 
Unidade 7 - Estruturando Banco de Dados com o BR Office Base - parte 2
Unidade 7  - Estruturando Banco de Dados com o BR Office Base - parte 2Unidade 7  - Estruturando Banco de Dados com o BR Office Base - parte 2
Unidade 7 - Estruturando Banco de Dados com o BR Office Base - parte 2Rogerio P C do Nascimento
 
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Ambiente Livre
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBRodrigo Hjort
 
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e PentahoBig Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e PentahoAmbiente Livre
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveFlavio Fonte, PMP, ITIL
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATALeonardo Dias
 

Destaque (17)

Orientação a objetos na prática
Orientação a objetos na práticaOrientação a objetos na prática
Orientação a objetos na prática
 
Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre Cientista de Dados – Dominando o Big Data com Software Livre
Cientista de Dados – Dominando o Big Data com Software Livre
 
Pentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data LakesPentaho, Hadoop , Big Data e Data Lakes
Pentaho, Hadoop , Big Data e Data Lakes
 
Automatizacao de tarefas
Automatizacao de tarefasAutomatizacao de tarefas
Automatizacao de tarefas
 
Calc avancado
Calc avancadoCalc avancado
Calc avancado
 
Programacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshareProgramacao de macros_com_libre_office_basic_slideshare
Programacao de macros_com_libre_office_basic_slideshare
 
Unidade 7 - Estruturando Banco de Dados com o BR Office Base
Unidade 7  - Estruturando Banco de Dados com o BR Office BaseUnidade 7  - Estruturando Banco de Dados com o BR Office Base
Unidade 7 - Estruturando Banco de Dados com o BR Office Base
 
Boas Práticas de Design em Aplicações Ruby on Rails
Boas Práticas de Design em Aplicações Ruby on RailsBoas Práticas de Design em Aplicações Ruby on Rails
Boas Práticas de Design em Aplicações Ruby on Rails
 
Pentaho
PentahoPentaho
Pentaho
 
Programação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice BasicProgramação de Macros com LibreOffice Basic
Programação de Macros com LibreOffice Basic
 
MongoDB e Bancos de Dados Orientados a Documentos
MongoDB e Bancos de Dados Orientados a DocumentosMongoDB e Bancos de Dados Orientados a Documentos
MongoDB e Bancos de Dados Orientados a Documentos
 
Unidade 7 - Estruturando Banco de Dados com o BR Office Base - parte 2
Unidade 7  - Estruturando Banco de Dados com o BR Office Base - parte 2Unidade 7  - Estruturando Banco de Dados com o BR Office Base - parte 2
Unidade 7 - Estruturando Banco de Dados com o BR Office Base - parte 2
 
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
Pentaho com Hadoop – O Canivete Suíço do Cientistas de Dados para Big Data An...
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDB
 
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e PentahoBig Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
Big Data Analytics - Do MapReduce ao dashboard com Hadoop e Pentaho
 
Big Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hiveBig Data - O que é o hadoop, map reduce, hdfs e hive
Big Data - O que é o hadoop, map reduce, hdfs e hive
 
OS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATAOS CINCO Vs DO BIG DATA
OS CINCO Vs DO BIG DATA
 

Mais de Elomar Souza

We, Tennesseans (annotated version)
We, Tennesseans (annotated version)We, Tennesseans (annotated version)
We, Tennesseans (annotated version)Elomar Souza
 
People from brazil
People from brazilPeople from brazil
People from brazilElomar Souza
 
Introdução a Ruby on Rails - Flisol2010
Introdução a Ruby on Rails - Flisol2010Introdução a Ruby on Rails - Flisol2010
Introdução a Ruby on Rails - Flisol2010Elomar Souza
 
Minicurso de Rails - Blog
Minicurso de Rails - BlogMinicurso de Rails - Blog
Minicurso de Rails - BlogElomar Souza
 
Minicurso de Rails
Minicurso de RailsMinicurso de Rails
Minicurso de RailsElomar Souza
 
Desenvolvimento Ágil e XP
Desenvolvimento Ágil e XPDesenvolvimento Ágil e XP
Desenvolvimento Ágil e XPElomar Souza
 
ruby - programar é divertido
ruby - programar é divertidoruby - programar é divertido
ruby - programar é divertidoElomar Souza
 
Aprendendo Em Grupos
Aprendendo Em GruposAprendendo Em Grupos
Aprendendo Em GruposElomar Souza
 

Mais de Elomar Souza (11)

We, Tennesseans (annotated version)
We, Tennesseans (annotated version)We, Tennesseans (annotated version)
We, Tennesseans (annotated version)
 
We, Tennesseans
We, TennesseansWe, Tennesseans
We, Tennesseans
 
People from brazil
People from brazilPeople from brazil
People from brazil
 
Introdução a Ruby on Rails - Flisol2010
Introdução a Ruby on Rails - Flisol2010Introdução a Ruby on Rails - Flisol2010
Introdução a Ruby on Rails - Flisol2010
 
Minicurso de Rails - Blog
Minicurso de Rails - BlogMinicurso de Rails - Blog
Minicurso de Rails - Blog
 
Minicurso de Rails
Minicurso de RailsMinicurso de Rails
Minicurso de Rails
 
Desenvolvimento Ágil e XP
Desenvolvimento Ágil e XPDesenvolvimento Ágil e XP
Desenvolvimento Ágil e XP
 
ruby - programar é divertido
ruby - programar é divertidoruby - programar é divertido
ruby - programar é divertido
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Aprendendo Em Grupos
Aprendendo Em GruposAprendendo Em Grupos
Aprendendo Em Grupos
 
Bem Vindo Ao +Web
Bem Vindo Ao +WebBem Vindo Ao +Web
Bem Vindo Ao +Web
 

Programação Funcional em Ruby

Notas do Editor

  1. programação funcional é um paradigma, como OO. uma espécia de estilo, que diz como você estrutura e organiza seu programa
  2. existem linguagens puramente funcionais, e elas estão entre as  mais velhas do mundo da programação. lisp, por exemplo, nasceu em *58* o estilo funcional, no entanto, pode ser usado em qualquer linguagem
  3. mas o que define esse estilo?
  4. em programação funcional, funções tem o mesmo conceito da matemática: uma transformação que recebe um conjunto de valore e retorna um conjunto de valores. pra mesma entrada sempre a mesma saída, e o estado não muda.
  5. funções são valores. podem ser passadas como parâmetro, retornadas de outras funções, etc.
  6. uma expressão pode ser substituída pelo seu valor
  7. não consigo pensar em nada além da curva de aprendizado :p