Haskell motivaçãoaula2
-
Upload
crislanio-macedo -
Category
Technology
-
view
38 -
download
2
Transcript of Haskell motivaçãoaula2
![Page 1: Haskell motivaçãoaula2](https://reader035.fdocumentos.tips/reader035/viewer/2022071723/55c39b9dbb61eb992d8b45bf/html5/thumbnails/1.jpg)
Programação Funcional em Haskell2a Reunião — Motivação para Programação Funcional
![Page 2: Haskell motivaçãoaula2](https://reader035.fdocumentos.tips/reader035/viewer/2022071723/55c39b9dbb61eb992d8b45bf/html5/thumbnails/2.jpg)
Conteúdo e objetivos
Introdução à programação funcional usando Haskell Objetivos de aprendizagem
Motivação sobre programação funcional;
O que é programação funcional ;
Vantagens das linguagens funcionais;
![Page 3: Haskell motivaçãoaula2](https://reader035.fdocumentos.tips/reader035/viewer/2022071723/55c39b9dbb61eb992d8b45bf/html5/thumbnails/3.jpg)
Motivação
Programação declarativa preocupa-se em especificar oproblema e a solução e não com a maneira com a qual estasolução será encontrada. Uma linguagem declarativapreocupa-se com o que deve ser computador e não como umvalor deve ser computador.
OBJETIVO do grupo: estudar Programação Funcionalcom a Linguagem Haskell.
![Page 4: Haskell motivaçãoaula2](https://reader035.fdocumentos.tips/reader035/viewer/2022071723/55c39b9dbb61eb992d8b45bf/html5/thumbnails/4.jpg)
Programação Funcional
Lisp foi a primeira linguagem de programação funcional. Elafoi descrita por MacCarthy do MIT em 1960.
Vamos estudar uma linguagem deprogramação funcional moderna, chamada Haskell, que possuivárias características interessantes:
• Linguagem puramente funcional: Não existe atribuição!
• Avaliação Lazy: argumentos são avaliados somente quando necessário. Possibilita o trabalho com estrutura de dados infinitas.
![Page 5: Haskell motivaçãoaula2](https://reader035.fdocumentos.tips/reader035/viewer/2022071723/55c39b9dbb61eb992d8b45bf/html5/thumbnails/5.jpg)
Linguagens Funcionais
Funções são os elementos principais neste tipo de linguagem.
Funções podem receber funções como argumentos e uma função pode devolver como resultado outra função.
Estruturas de dados podem conter funções como elementos
![Page 6: Haskell motivaçãoaula2](https://reader035.fdocumentos.tips/reader035/viewer/2022071723/55c39b9dbb61eb992d8b45bf/html5/thumbnails/6.jpg)
Vantagens de Linguagens Funcionais
Programas são pequenos e com alto poder de expressão.
Suporta componentes reusáveis de software.
Permite prototipação rápida.
Permite verificação formal de programas. As funções em umalinguagem funcional são funções matemáticas puras, não existe atribuição. Uma função que recebe os mesmos argumentos sempre devolve o mesmo resultado.
![Page 7: Haskell motivaçãoaula2](https://reader035.fdocumentos.tips/reader035/viewer/2022071723/55c39b9dbb61eb992d8b45bf/html5/thumbnails/7.jpg)
???
Se linguagens funcionais são tão legais como é que eu nuncaouvi falar delas?
• Um paradigma de programação leva um longo tempo até seradotado. Ex: orientação a objetos surgiu nos anos 60.
• Linguagens funcionais são ensinadas na maioria dos cursosde computação da EUROPA e EUA, e em alguns cursos noBrasil
![Page 8: Haskell motivaçãoaula2](https://reader035.fdocumentos.tips/reader035/viewer/2022071723/55c39b9dbb61eb992d8b45bf/html5/thumbnails/8.jpg)
???
• Linguagens funcionais são utilizadas em várias empresas eprojetos:• Autocad possui partes implementadas em LISP• Super Mario 64 usa LISP internamente• ERLANG: Linguagem funcional desenvolvida pela Ericson
![Page 9: Haskell motivaçãoaula2](https://reader035.fdocumentos.tips/reader035/viewer/2022071723/55c39b9dbb61eb992d8b45bf/html5/thumbnails/9.jpg)
???
• Várias das coisas legais que encontramos nas linguagens deprogramação modernas surgiram nas linguagens funcionais.
Ex:
• Garbage Collection (Java, Phyton, Perl, etc)• Funções Anônimas (Phyton, PhP)• Programação genérica, polimorfismo de tipo (Java 1.5)