haskell motivaçãoaula2

9
Programação Funcional em Haskell 2a Reunião — Motivação para Programação Funcional

Upload: crislanio-macedo

Post on 07-Aug-2015

38 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Haskell motivaçãoaula2

Programação Funcional em Haskell2a Reunião — Motivação para Programação Funcional

Page 2: Haskell motivaçãoaula2

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

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

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

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

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

???

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

???

• 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

???

• 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)