Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagens de Programação II Profa. Lívia Naiara de Andrade Introdução a Programação Funcional Linguagem Haskell Programação Funcional • Estilo de programação em que o método básico de computação é a aplicação de funções à argumentos. • Haskell é uma linguagem funcional projetada com • Haskell é uma linguagem funcional projetada com objetivo de ser utilizada no ensino, pesquisa e construção de sistemas computacionais. • Haskell deve seu nome ao matemático Haskell B. Curry, conhecido por seu trabalho em lógica combinatória e pioneiro no desenvolvimento do Cálculo Lambda (Cálculo λ), inspiração aos projetistas da maioria das linguagens funcionais. Exemplo • Para somar os números inteiros de 1 a 10 utilizando linguagem imperativa (java): • O método da computação é baseado em atribuição de valores à variáveis. Exemplo • Em HASKELL, uma linguagem funcional, a soma pode ser escrita como: • O método da computação é baseado em aplicação de argumentos à funções. HASKELL • Hugs: Compilador HASKELL • Hugs é uma implementação da linguagem Haskell que pode ser executada em PCs e sistemas Unix, que pode ser executada em PCs e sistemas Unix, incluindo Linux. • Pode ser obtido gratuitamente em www.haskell.org/hugs Como entrar no HUGS??? Expressões em HASKELL Funções Uma função pode ser representada como no desenho abaixo: Entradas • A função calcula um valor (valor de saída) que depende dos valores de entrada. f Entradas Saídas Funções Funções em Haskell são normalmente definidas pelo uso de equações. Por exemplo, a função soma pode ser escrita: + 12 34 46 Funções Em Haskell existem várias funções pré-definidas que podem ser usadas para a construção de expressões. Veja um exemplo: • A função reverse inverte a ordem dos caracteres em uma string. • Existirem várias funções pré-definidas, porém a idéia da programação funcional é que você defina as suas próprias funções!!! Funções • As suas funções devem ser definidas em scripts. • Em scripts da linguagem Haskell existem • Em scripts da linguagem Haskell existem comentários que facilitam uma leitura posterior. Tudo o que for escrito depois de dois travessões (--) é considerado comentário e não é interpretado. • Segue um exemplo de script: Funções Escrevendo e testando a função incrementar: Funções Funções A primeira linha de uma definição é a declaração de tipo. A notação ‘::’ pode ser lida como ‘possui tipo’. A linha seguinte A linha seguinte atribui o valor 17 para idade. Funções Aqui o tipo Booleano é introduzido. maiorDeIdade = False Em Haskell uma definição pode usar qualquer outra qualquer outra definição do mesmo script. Funções Encontra-se também definições de funções. A função quadrado vai do tipo Int para o tipo Int. Através de seu argumento, seu argumento, calcula uma resposta utilizando uma equação (x * x). Funções Função mini: devolve o menor valor entre os dois argumentos. Para obter a resposta, testam-se os valores para decidir qual é o menor. Para isso são usados guards (expressões (expressões booleanas iniciadas por uma | ). Outros exemplos de Funções Algumas funções para calcular área de figuras podem ser definidas: Outros exemplos de Funções Função para calcular a média entre três números: ? Outros exemplos de Funções Função para calcular a média entre três números: Ambiente Hugs Alguns comandos úteis: Exercícios para entregar 1. Escreva uma função para calcular o dobro de um número. 2 Escreva uma função para quadruplicar um número, Enviar pelo moodle até dia 24-05. Todas as funções devem estar no mesmo arquivo, assim nomeado: nome_aluno.hs 2 Escreva uma função para quadruplicar um número, usando a função definida no item anterior. 3 Defina uma função para calcular a distância entre dois pontos (num plano). 4 Dadas as medidas dos catetos de um triângulo retângulo, retornar o valor de sua hipotenusa. 5 Dados três valores, retornar o menor deles.
Compartilhar