9 paradigma funcional usando haskell
Upcoming SlideShare
Loading in...5
×
 

9 paradigma funcional usando haskell

on

  • 751 views

 

Statistics

Views

Total Views
751
Views on SlideShare
751
Embed Views
0

Actions

Likes
0
Downloads
8
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

9 paradigma funcional usando haskell 9 paradigma funcional usando haskell Presentation Transcript

  • Paradigmas de Linguagens de Programação
    Prof. Péricles Miranda
    periclesmiranda@gmail.com
  • Paradigma Funcional usando Haskell
  • LazynessouAvaliaçãopreguiçosa
  • Lazyness
    Linguagens de programação imperativas possuem o conceito de avaliação eagerou faminta:
    Toda chamada de função é executada imediatamente;
    Uma função só pode ser executada depois que todos os argumentos são avaliados.
    Haskell é uma linguagem funcional que adota o conceito de Lazyness:
    Quando uma chamada a função é encontrada no programa, esta chamada é guardada e somente será executada se o valor de retorno for necessário;
    Os argumentos de funções são passados de forma não avaliada e serão executados a medida em que forem necessários;
  • Exemplo:
    Programa em Haskell:
    f :: a -> b -> a
    f x y = x
    Avalia corretamente a expressão:
    f (2+3) (2/0)
  • Lazyness
    Vantagens:
    Computações cujos valores não são necessários não são avaliados;
    Em determinadas situações, programas que gerariam erros podem funcionar corretamente;
    Novas técnicas de programação;
    Desvantagem:
    Maior custo computacional na execução das expressões.
  • > head [(1+2),(3+1)]
    O usuário pede para avaliar uma expressão.
    Como Funciona a Lazyness?
  • > E0
    Como Funciona a Lazyness?
    As chamadas as funções são armazenadas nas tabela de funções.
  • > E0
    Como Funciona a Lazyness?
    E0 é o resultado da expressão e deve ser impresso, antes disso ele precisa ser executado.
  • > E0
    Como Funciona a Lazyness?
    Mas:
    head [a,b] = a
    Portanto:
    head E1 = E1
  • > E2
    Como Funciona a Lazyness?
    E2 não está avaliado, deve ser avaliado.
    1+2 => 3
  • > E2
    Como Funciona a Lazyness?
    E2 está avaliado, e pode ser mostrado.
  • Paradigmas de Linguagens de Programação
    Prof. Péricles Miranda
    periclesmiranda@gmail.com