SlideShare uma empresa Scribd logo
1 de 22
Paradigmas de Linguagens de Programação Prof. Péricles Miranda
Introdução ao Paradigma Funcional
O que é uma Linguagem Funcional?
O que é umaLinguagemFuncional? Programação com alto nível de abstração; Soluções elegantes, concisas e poderosas; Funções: computam um resultado que depende apenas dos valores das entradas; Forte fundamentação teórica, o que permite mais facilmente provas de propriedades sobre os programas.
Características Sua sintaxe encoraja uma visão totalmente modular do fluxo do programa; Reutilização do código previamente escrito (funções) para construir programas cada vez mais complexos; Geralmente não há um identificador (por exemplo a função main( ) de C e Java) para indicar o ponto onde a execução do programa inicia.
CaracterísticasModelo Computacional Entrada Saída Programa Ausência de estados e comandos,  não existe conceito de memória.
Como vimos… Umalinguagemfuncional se caracterizapelainexistência de memóriacomoconceitoprimitivodalinguagem; Tudo é função.
Operações que dependem de Memória Variáveis Atualizáveis Globais e Locais Atribuições x = x + 1 Alocação dinâmica a = new Pessoa(); Comandos de Repetição for (x=0;x<10;x++) …
Por que não Utilizar Memória? Programas que utilizam memória são mais difíceis de serem analisados. Exemplo: Otimização de Código: …. int f(int n) {     … } int g() {     a = f(1) + f(1); } … int f(int n) {     … } int g() {     a = 2*f(1); } otimiza para
Por que não Utilizar Memória? Programas que utilizam memória são mais difíceis de serem analisados. Exemplo: Otimização de Código: int x = 0; int f(int n) {     return (x += n); } int g() {     a = f(1) + f(1); } int x = 0; int f(int n) {     return (x += n); } int g() {     a = 2*f(1); } X otimiza para
Mais Exemplos O que vai ser impresso pela função f? class C { int n; } int f(C a, C b) {       a.n = 2;       b.n = 3;       System.out.println(a.n+b.n); } ….
Mais Exemplos O que vai ser impresso pela função f? class C { int n; } int f(C a, C b) {       a.n = 2;       b.n = 3;       System.out.println(a.n+b.n); } void main() {      C a = new C();      f(a,a); }
Mais Exemplos O que vai ser impresso pela função f? class C {      int n;      void setN(int x) { n = x; } } int f(C a) {       a.setN(5);       System.out.println(a.n); } ….
Mais Exemplos O que vai ser impresso pela função f? class C {      int n;      void setN(int x) { n = x; } } int f(C a) {       a.setN(5);       System.out.println(a.n); } class D extends C { void setN(int x) { n = 2*x; } } void main() {    C a = new D();    f(a); }
Como podemosver… Análise de programasqueabusam de variáveis e orientação a objetosdificultam a análise de segmentos de umasistema. O sistema tem que ser estudadocomo um todo.
Como ProgramarFuncionalmente? Um programadorfuncionalutiliza: Comandos de seleção; Recursão / Indução; Estruturas de dados complexas; Novosconceitos de programação Propostosparacompensara “deficiência” da LF; Polimorfismo, Funções de altaordem, Avaliaçãotardia, Monads, entre outros.
Linguagem Haskell LinguagemFuncionalPura; Homenagemaomatemático: Haskell Curry; Páginada Web: http://www.haskell.org Duasimplementaçõesprincipais: Hugs (interpretador); GHC (compilador).
Linguagens Funcionais Puras LinguagemFuncional “pura”: Nãopossuimemóriacomo base dalinguagem; Exemplo: Haskell; LinguagensFuncionaisnãopuras: Possuemconceitos de memória; Exemplos: SML, Lisp, OCAML.
Vantagens Manipulação mais simples de programas Legibilidade; Modularidade; Prova de propriedades: addDa b = 2 * (a + b) = 2 * (b + a) = addD b a ...
Desvantagens “O mundo não é funcional!”; Implementações ineficientes; Mecanismos primitivos de E/S e formatação Interface.
Introdução ao Paradigma Funcional
Paradigmas de Linguagem de Programação Prof. Péricles Miranda

Mais conteúdo relacionado

Mais procurados

Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoAdriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoFabio Spanhol
 
Oficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvROficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvRCiro Matheus
 
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...tdc-globalcode
 
Aula 2 - Lógica de Programação
Aula 2 - Lógica de ProgramaçãoAula 2 - Lógica de Programação
Aula 2 - Lógica de ProgramaçãoInstituto CENTEC
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoInstituto CENTEC
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de ProgramaçãoRicardo Terra
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOMicrosoft
 
Algoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoAlgoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoElaine Cecília Gatto
 
Linguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosLinguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosFabio Spanhol
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonJanderson Campêlo
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11Ismar Silveira
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Adriano Teixeira de Souza
 
Apresentação final
Apresentação finalApresentação final
Apresentação finalvalmon
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoSidney Roberto
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem cEugenio Caetano
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem pythonBruno Maspoli
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6Fabio Spanhol
 

Mais procurados (20)

Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
 
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de ProgramaçãoParadigmas de Linguagens de Programação
Paradigmas de Linguagens de Programação
 
Oficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvROficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvR
 
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
 
Aula 2 - Lógica de Programação
Aula 2 - Lógica de ProgramaçãoAula 2 - Lógica de Programação
Aula 2 - Lógica de Programação
 
Aula 3 - Lógica de Programação
Aula 3 - Lógica de ProgramaçãoAula 3 - Lógica de Programação
Aula 3 - Lógica de Programação
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de Programação
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
Algoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoAlgoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de Programação
 
Linguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos IntrodutóriosLinguagem C 01 - Tópicos Introdutórios
Linguagem C 01 - Tópicos Introdutórios
 
Trabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - PythonTrabalho de Paradigmas Da Linguagem De Programação - Python
Trabalho de Paradigmas Da Linguagem De Programação - Python
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
Paradigmas de Linguagens de Programação - Quatro Paradigmas + Ambientes de Pr...
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem c
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem python
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 

Destaque

Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoAdriano Teixeira de Souza
 
Linguagem de programação haskell
Linguagem de programação haskellLinguagem de programação haskell
Linguagem de programação haskellDaniel Farias
 
Paradigma Lógico e Funcional
Paradigma Lógico e FuncionalParadigma Lógico e Funcional
Paradigma Lógico e FuncionalDiogenes Freitas
 
Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Ismar Silveira
 
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...tdc-globalcode
 
Modelo de artigo científico básico - com normas ABNT
Modelo de artigo científico básico - com normas ABNTModelo de artigo científico básico - com normas ABNT
Modelo de artigo científico básico - com normas ABNTRosineia Oliveira dos Santos
 
Proposta pedagógica da educação infantil
Proposta pedagógica da educação infantilProposta pedagógica da educação infantil
Proposta pedagógica da educação infantilkauezinhoproducao
 
Planejamento educação infantil
Planejamento educação infantilPlanejamento educação infantil
Planejamento educação infantilClaudia Ramos
 

Destaque (14)

Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - Introdução
 
Paradigma lógico
Paradigma lógicoParadigma lógico
Paradigma lógico
 
Contextualizando o moodle
Contextualizando o moodleContextualizando o moodle
Contextualizando o moodle
 
Introdução ao paradigma OO
Introdução ao paradigma OOIntrodução ao paradigma OO
Introdução ao paradigma OO
 
Linguagem de programação haskell
Linguagem de programação haskellLinguagem de programação haskell
Linguagem de programação haskell
 
Paradigma Lógico e Funcional
Paradigma Lógico e FuncionalParadigma Lógico e Funcional
Paradigma Lógico e Funcional
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
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
 
Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10Paradigmas de linguagens de programacao - aula#10
Paradigmas de linguagens de programacao - aula#10
 
Paradigmas de Linguagem
Paradigmas de LinguagemParadigmas de Linguagem
Paradigmas de Linguagem
 
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
 
Modelo de artigo científico básico - com normas ABNT
Modelo de artigo científico básico - com normas ABNTModelo de artigo científico básico - com normas ABNT
Modelo de artigo científico básico - com normas ABNT
 
Proposta pedagógica da educação infantil
Proposta pedagógica da educação infantilProposta pedagógica da educação infantil
Proposta pedagógica da educação infantil
 
Planejamento educação infantil
Planejamento educação infantilPlanejamento educação infantil
Planejamento educação infantil
 

Semelhante a 4 introdução ao paradigma funcional

Semelhante a 4 introdução ao paradigma funcional (20)

mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
Modularização
ModularizaçãoModularização
Modularização
 
Haskell - Introdução
Haskell - IntroduçãoHaskell - Introdução
Haskell - Introdução
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
01-Paradigmas.pdf
01-Paradigmas.pdf01-Paradigmas.pdf
01-Paradigmas.pdf
 
Ud2
Ud2Ud2
Ud2
 
Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros Linguagem C - Funções e ponteiros
Linguagem C - Funções e ponteiros
 
Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçao
 
Aula09 traducaosin110
Aula09 traducaosin110Aula09 traducaosin110
Aula09 traducaosin110
 
Funções em C
Funções em CFunções em C
Funções em C
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
M2ti - Python Brasil
M2ti - Python BrasilM2ti - Python Brasil
M2ti - Python Brasil
 
Series lab
Series labSeries lab
Series lab
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Calourada2010
Calourada2010Calourada2010
Calourada2010
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Linguagem c parte 1
Linguagem c parte 1Linguagem c parte 1
Linguagem c parte 1
 

Mais de Péricles Miranda

8 paradigma funcional usando haskell
8 paradigma funcional usando haskell8 paradigma funcional usando haskell
8 paradigma funcional usando haskellPéricles Miranda
 
6 paradigma funcional usando haskell
6 paradigma funcional usando haskell6 paradigma funcional usando haskell
6 paradigma funcional usando haskellPéricles Miranda
 
5 paradigma funcional usando haskell
5 paradigma funcional usando haskell5 paradigma funcional usando haskell
5 paradigma funcional usando haskellPéricles Miranda
 
9 paradigma funcional usando haskell
9 paradigma funcional usando haskell9 paradigma funcional usando haskell
9 paradigma funcional usando haskellPéricles Miranda
 
7 paradigma funcional usando haskell
7 paradigma funcional usando haskell7 paradigma funcional usando haskell
7 paradigma funcional usando haskellPéricles Miranda
 
Monografia pericles miranda_v1 (28-07-10)
Monografia pericles miranda_v1 (28-07-10)Monografia pericles miranda_v1 (28-07-10)
Monografia pericles miranda_v1 (28-07-10)Péricles Miranda
 

Mais de Péricles Miranda (8)

Bio python
Bio pythonBio python
Bio python
 
8 paradigma funcional usando haskell
8 paradigma funcional usando haskell8 paradigma funcional usando haskell
8 paradigma funcional usando haskell
 
6 paradigma funcional usando haskell
6 paradigma funcional usando haskell6 paradigma funcional usando haskell
6 paradigma funcional usando haskell
 
5 paradigma funcional usando haskell
5 paradigma funcional usando haskell5 paradigma funcional usando haskell
5 paradigma funcional usando haskell
 
9 paradigma funcional usando haskell
9 paradigma funcional usando haskell9 paradigma funcional usando haskell
9 paradigma funcional usando haskell
 
7 paradigma funcional usando haskell
7 paradigma funcional usando haskell7 paradigma funcional usando haskell
7 paradigma funcional usando haskell
 
Monografia pericles miranda_v1 (28-07-10)
Monografia pericles miranda_v1 (28-07-10)Monografia pericles miranda_v1 (28-07-10)
Monografia pericles miranda_v1 (28-07-10)
 
NN using python
NN using pythonNN using python
NN using python
 

4 introdução ao paradigma funcional

  • 1. Paradigmas de Linguagens de Programação Prof. Péricles Miranda
  • 3. O que é uma Linguagem Funcional?
  • 4. O que é umaLinguagemFuncional? Programação com alto nível de abstração; Soluções elegantes, concisas e poderosas; Funções: computam um resultado que depende apenas dos valores das entradas; Forte fundamentação teórica, o que permite mais facilmente provas de propriedades sobre os programas.
  • 5. Características Sua sintaxe encoraja uma visão totalmente modular do fluxo do programa; Reutilização do código previamente escrito (funções) para construir programas cada vez mais complexos; Geralmente não há um identificador (por exemplo a função main( ) de C e Java) para indicar o ponto onde a execução do programa inicia.
  • 6. CaracterísticasModelo Computacional Entrada Saída Programa Ausência de estados e comandos, não existe conceito de memória.
  • 7. Como vimos… Umalinguagemfuncional se caracterizapelainexistência de memóriacomoconceitoprimitivodalinguagem; Tudo é função.
  • 8. Operações que dependem de Memória Variáveis Atualizáveis Globais e Locais Atribuições x = x + 1 Alocação dinâmica a = new Pessoa(); Comandos de Repetição for (x=0;x<10;x++) …
  • 9. Por que não Utilizar Memória? Programas que utilizam memória são mais difíceis de serem analisados. Exemplo: Otimização de Código: …. int f(int n) { … } int g() { a = f(1) + f(1); } … int f(int n) { … } int g() { a = 2*f(1); } otimiza para
  • 10. Por que não Utilizar Memória? Programas que utilizam memória são mais difíceis de serem analisados. Exemplo: Otimização de Código: int x = 0; int f(int n) { return (x += n); } int g() { a = f(1) + f(1); } int x = 0; int f(int n) { return (x += n); } int g() { a = 2*f(1); } X otimiza para
  • 11. Mais Exemplos O que vai ser impresso pela função f? class C { int n; } int f(C a, C b) { a.n = 2; b.n = 3; System.out.println(a.n+b.n); } ….
  • 12. Mais Exemplos O que vai ser impresso pela função f? class C { int n; } int f(C a, C b) { a.n = 2; b.n = 3; System.out.println(a.n+b.n); } void main() { C a = new C(); f(a,a); }
  • 13. Mais Exemplos O que vai ser impresso pela função f? class C { int n; void setN(int x) { n = x; } } int f(C a) { a.setN(5); System.out.println(a.n); } ….
  • 14. Mais Exemplos O que vai ser impresso pela função f? class C { int n; void setN(int x) { n = x; } } int f(C a) { a.setN(5); System.out.println(a.n); } class D extends C { void setN(int x) { n = 2*x; } } void main() { C a = new D(); f(a); }
  • 15. Como podemosver… Análise de programasqueabusam de variáveis e orientação a objetosdificultam a análise de segmentos de umasistema. O sistema tem que ser estudadocomo um todo.
  • 16. Como ProgramarFuncionalmente? Um programadorfuncionalutiliza: Comandos de seleção; Recursão / Indução; Estruturas de dados complexas; Novosconceitos de programação Propostosparacompensara “deficiência” da LF; Polimorfismo, Funções de altaordem, Avaliaçãotardia, Monads, entre outros.
  • 17. Linguagem Haskell LinguagemFuncionalPura; Homenagemaomatemático: Haskell Curry; Páginada Web: http://www.haskell.org Duasimplementaçõesprincipais: Hugs (interpretador); GHC (compilador).
  • 18. Linguagens Funcionais Puras LinguagemFuncional “pura”: Nãopossuimemóriacomo base dalinguagem; Exemplo: Haskell; LinguagensFuncionaisnãopuras: Possuemconceitos de memória; Exemplos: SML, Lisp, OCAML.
  • 19. Vantagens Manipulação mais simples de programas Legibilidade; Modularidade; Prova de propriedades: addDa b = 2 * (a + b) = 2 * (b + a) = addD b a ...
  • 20. Desvantagens “O mundo não é funcional!”; Implementações ineficientes; Mecanismos primitivos de E/S e formatação Interface.
  • 22. Paradigmas de Linguagem de Programação Prof. Péricles Miranda