Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Introdução à Programação
Uma Abordagem Funcional
2
Revisão
3
Exercício O fatorial duplo de um número natural n é o produto de todos os números de 1 (ou 2) até n, contados de 2 em 2. Por exemplo, o fatorial duplo de 8 é 8×6×4×2 = 384, e o fatorial duplo de 7 é 7×5×3×1 = 105. Defina uma função para calcular o fatorial duplo usando recursividade. Defina uma função recursiva que recebe dois números naturais m e n e retorna o produto de todos os números no intervalo [m,n]. Usando a função definida no exercício 2, escreva uma definição não recursiva para calcular o fatorial de um número natural.
4
Exercício Recursividade
Defina uma função recursiva para calcular a soma de dois números inteiros, sem usar os operadores + e -. Utilize as funções succ e pred da biblioteca, que calculam respectivamente o sucessor e o antecessor de um valor. A raiz quadrada inteira de um número inteiro positivo n é o maior número inteiro cujo quadrado é menor ou igual a n. Por exemplo, a raiz quadrada inteira de 15 é 3, e a raiz quadrada inteira de 16 é 4. Defina uma função recursiva para calcular a raiz quadrada inteira. Obs.: pode ser necessário uma função auxiliar.
5
Listas em Haskell
6
Materiais extraído do professor Romildo
7
Listas Caracteriza-se por agregar quantidades variáveis de elementos desde que todos eles sejam de um mesmo tipo. Exemplos de listas: Números Pares; Livros lidos por uma pessoa; Disciplinas que já cursei; ...
8
Definição Uma lista é uma sequência de zero ou mais elementos de um mesmo tipo. Entende-se por sequência uma quantidade qualquer de itens dispostos linearmente. Podemos representar uma lista pela enumeração dos seus elementos, separados por vírgulas e cercados por colchetes: [ e1, e2, .., en]
9
Estrutura de uma lista Lista vazia: Nenhum elemento na sequência
Lista não vazia: Formada por dois componentes: Cabeça: o primeiro elemento da lista Cauda: lista de todos os demais elementos, a partir do segundo
10
Notação de listas O construtor constante [] denota a lista vazia;
O construtor : constrói uma lista não vazia a partir da cabeça e da cauda; O operador : é binário e com associatividade à direita. Ex.:
11
Exemplo de listas
12
Exemplo de listas
13
Exemplos de listas
14
Exemplos de listas
15
Exemplos de listas
16
Exemplos de listas
17
Notação de listas
18
String
19
Casamento
20
Casamento de padrão Casamento de padrão é a operação básica de Haskell para decompor valores estruturados. Para cada construtor de dados existe uma forma de padrão correspondente.
21
Exemplo
22
Casamento de padrão com listas
23
Casamento de padrão com listas
24
Casamento de padrão com listas
25
Casamento de padrão com listas
26
Exercícios Defina uma função usando casamento de padrão que retorna o sucessor do primeiro elemento de uma lista, se houver, e zero caso contrário. Usando casamento de padrão, defina uma função que retorna a soma dos dois primeiros elementos de uma lista se a lista tiver pelo menos dois elementos, a cabeça da lista se ela contiver apenas um elemento, e zero caso contrário.
27
Exercícios Defina uma função usando casamento de padrão que retorna uma lista com os antecessores de cada elemento de uma lista, se houver, e zero caso contrário. Defina a função isIn que dados um valor e uma lista, retorna verdadeiro se o valor está na lista e falso caso contrário. Exemplos: isIn 1 [1,2,3] -> True; isIn 2 [1,5,4] -> False; isIn 'e' "Haskell" -> True
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.