1 / 17

Introdução à Programação: uma Abordagem Funcional Programação I Engenharia de Computação

Introdução à Programação: uma Abordagem Funcional Programação I Engenharia de Computação Prof.ª Claudia Boeres 2009/1. linguagem Haskell: oferece uma sintaxe simples e elegante; ambiente HUGS: uma implementação da linguagem de programação funcional Haskell ;

jason
Download Presentation

Introdução à Programação: uma Abordagem Funcional Programação I Engenharia de Computação

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introdução à Programação: uma Abordagem Funcional Programação I Engenharia de Computação Prof.ª Claudia Boeres 2009/1

  2. linguagem Haskell: oferece uma sintaxe simples e elegante; ambiente HUGS: uma implementação da linguagem de programação funcional Haskell; provê um avaliador de expressões descritas por funções o avaliador funciona por meio de um interpretador, que interpreta as expressões para o computador A linguagem de programação Haskell e o ambiente Hugs

  3. Avaliador do ambiente HUGS

  4. Ambiente HUGS • avaliador: pode ser usadocomoumacalculadora: ? 3 + 5 * 213 ? (3 + 5) * 216 ? • primitivas: funçõesjáexistentesembibliotecas do HUGS

  5. Primeiras operações e primitivas...

  6. Exemplo Hugs> 4 * 3 – 2 10 Hugs> f 2 + 10 ERROR - Undefined variable "f" Hugs>:load “c:\boeres\exemplo1.hs” Main> f 2 + 10 13 exemplo1.hs f x = x + 1 hugs

  7. Descrição de funções Scripts: Funções devem ser descritas em um arquivo texto.

  8. Editor de texto Arquivo texto com definições de funções Ambiente Interpretador HUGS Programador Interações do programador com o ambiente de programação

  9. Dados os catetos a e b de um triângulo retângulo, calcular a sua hipotenusa. hugs Exemplo: Cálculo da hipotenusa de um triângulo retângulo

  10. restritas ao contexto específico da definição de uma função. Exemplo: hipo x y = sqrt (quad x + quad y) where quad x = x * x Definições locais

  11. hipo1 x y = sqrt (k1 + k2) where k1 = x * x k2 = y * y hipo2 x y = sqrt (k1 + k2) where k1 = x * x; k2 = y * y hipo3 x y = sqrt k where k = quad x + quad y where quad x = x * x Definições locais – mais exemplos

  12. Avaliação de expressões

  13. Para conhecer o tipo de uma função, disponível na biblioteca do HUGS ou construída pelo programador, basta usar, no ambiente HUGS, o comando: Hugs> :t <nome da função> Assinatura de funções e a notação Curry

  14. Exemplos

  15. definição: ma3 x y z = (x + y + z)/3 assinatura: ma3 :: xx  notação curry: toda função tem sempre um único parâmetro de entrada a aplicação de uma função sobre um parâmetro produz uma nova função assinatura: ma3 ::      Exemplo: média aritmética de três números reais

  16. Máquina Funcional

  17. Exercícios: 1) Avalie as expressões abaixo e apresente a sequência de reduções necessárias para a obtenção do termo irredutível (resultado final): a. mod 15 2 b. mod 15 2 + div 6 3 c. ma3 5 10 2 d. sqrt (15 – 2*3) / (17 – 12) 2) Defina na linguagem Haskell as funções abaixo. Use, quando achar adequado, definições locais: a. Determinação da área de um retângulo de lados a e b b. Determinação da área de um círculo de raio r c. Determinação da média aritmética de três números a, b e c d. Determinação da distância entre dois pontos

More Related