31
Universidade Federal de Mato Grosso Campus Universitário do Araguaia Instituto de Ciências Exatas e da Terra Bacharelado em Ciência da Computação Paradigmas de Linguagens de Programação Acabias, Andressa, Gracyeli, Juliana, Juliano e Layo Barra do Garças, MT Junho de 2010

Universidade Federal de Mato Grosso Campus Universitário do Araguaia

  • Upload
    payton

  • View
    40

  • Download
    2

Embed Size (px)

DESCRIPTION

Universidade Federal de Mato Grosso Campus Universitário do Araguaia Instituto de Ciências Exatas e da Terra Bacharelado em Ciência da Computação Paradigmas de Linguagens de Programação. Fundamentos de HaskelL. Acabias, Andressa, Gracyeli, Juliana, Juliano e Layo Barra do Garças, MT - PowerPoint PPT Presentation

Citation preview

Page 1: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Universidade Federal de Mato GrossoCampus Universitário do Araguaia

Instituto de Ciências Exatas e da TerraBacharelado em Ciência da Computação

Paradigmas de Linguagens de Programação

Acabias, Andressa, Gracyeli, Juliana, Juliano e Layo

Barra do Garças, MTJunho de 2010

Page 2: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 3: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 4: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 5: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

O QUE É AVALIAÇÃO DE EXPRESSÃO?

É quando o interpretador tenta “resolver a conta”. A expressão é analisada em todos os aspectos e depois os parâmetros reais são usados para produzir um retorno/resultado da conta.

dobro x = xdobro x = x^2^2

dobro dobro 55

Exemplo de expressão em Haskell

Parâmetro formalParâmetro formal

Parâmetro realParâmetro real

ExpressãoExpressão

Definição da Definição da FunçãoFunção

Page 6: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

module Fatorial wherefatorial :: Integer -> Integerfatorial 0 = 1fatorial n | n > 0 = n * fatorial (n-1)

Exemplo em Haskell de Fatorial

Page 7: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 8: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 9: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Em resumo, a avaliação preguiçosa é uma técnica de Em resumo, a avaliação preguiçosa é uma técnica de otimização usada em programação funcional para otimização usada em programação funcional para

atrasar a computação até um ponto em que o resultado atrasar a computação até um ponto em que o resultado da computação é considerado suficiente.da computação é considerado suficiente.

Mas o que é Avaliação Mas o que é Avaliação Preguiçosa?Preguiçosa?

Page 10: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

f(x) = 7f((21+33)*8) = 7

O interpretador nem verificará ou calculará o parâmetro real, já que independente da entrada, o resultado é sempre 7.

Exemplo de avaliação preguiçosa em Haskell

Page 11: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Então é isso, Haskell além de simples ainda Então é isso, Haskell além de simples ainda evita problemas. Por que então a gente ainda evita problemas. Por que então a gente ainda

usa usa CC??

Porque Haskell não é tão adequada na programação de Porque Haskell não é tão adequada na programação de sistemas operacionais e drivers. sistemas operacionais e drivers.

Nas Nas linguagens imperativaslinguagens imperativas, como C,, como C, é comum a é comum a Programação Orientada a Improvisos Técnicos (POIT) Programação Orientada a Improvisos Técnicos (POIT)

para conseguir maior performance em uma determinada para conseguir maior performance em uma determinada ocasião, o que não ocorre em Haskell.ocasião, o que não ocorre em Haskell.

Page 12: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Logo do HaskellLogo do Haskell

Page 13: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Versões do Hugs estão disponíveis para Versões do Hugs estão disponíveis para diversas plataformas, incluindo Windows, diversas plataformas, incluindo Windows, Unix, Mac OS X e Linux.Unix, Mac OS X e Linux.

Page 14: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 15: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 16: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 17: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 18: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 19: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 20: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 21: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Essa função (também conhecida como definição) nos diz que x só fará parte de par se o mod (uma função primitiva do tipo Inteiro que retorna o resto da divisão) de x por 2 for igual a zero.

Page 22: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 23: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 24: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 25: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 26: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 27: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 28: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 29: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 30: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

Fundamentos de HaskellFundamentos de Haskell Junho 2010 Junho 2010

Page 31: Universidade Federal de Mato Grosso Campus Universitário do Araguaia

““Faça o que puder e espere pelo melhor.”Faça o que puder e espere pelo melhor.”