Escolar Documentos
Profissional Documentos
Cultura Documentos
2 0 ] ] == [ [ 1 , 7 , 1 0 ] , [ 2 , 8 , 1 1 ] , [ 3 , 9 , 1 2 ] ]
agrupa [ ] == [ ]
o mystery faz?
9. O que a funca
o Funcional
Programaca
Folha de Exerccios 04
co nc at ena : : [ [ a ] ] > [ a ]
co nc ate na [ ] = [ ]
co nc ate na ( x : xs ) = x ++ c onc at en a xs
o da funca
o inverteFold :: [a] -> [a] que inverte uma lista
11. Escreva a definica
o foldr:(a -> b -> b) -> b -> [a] -> b
usando a funca
o recursiva:
Dica: Considere a seguinte definica
i n v e r t e : : [ a ] > [ a ]
inverte [] = []
i n v e r t e xs = ( l a s t xs ) : i n v e r t e ( i n i t xs )
o da funca
o tamanhoFold :: [a] -> Int que retorna o
12. Escreva a definica
o foldr:(a -> b -> b) -> b -> [a] ->
tamanho de uma lista usando a funca
b.
o recursiva:
Dica: Considere a seguinte definica
Por exemplo:
tamanho : : [ a ] > I n t
tamanho [ ]
= 0
tamanho ( x : xs ) = 1 + length xs
o da funca
o elementoFold a :: [a] -> Bool que determina
13. Escreva a definica
o foldr:(a -> b ->
se um elemento pertence ou n
ao a uma lista usando a funca
b) -> b -> [a] -> b.
o recursiva:
Dica: Considere a seguinte definica
1
1
1
1
= 2 + 2 + 2 + 2 + ...
6
1
2
3
4
(1)
o duplicar :: String -> String repete duas vezes cada vogal (letras
15. A funca
a, e, i, o, u min
usculas ou mai
usculas) numa cadeia de carateres; os outros
carateres devem ficar inalterados.
aproximaPi 4 == 2.9226129861250305
aproximaPi 1000 == 3.1406380562059946
Por exemplo:
o map e filter.
(b) Usando a funca
o de funca
o em Haskell:
6. Considere a seguinte definica
o until?
(a) Qual e o tipo da funca
o da express
(b) Qual e o resultado da avaliaca
ao until (< 10) square 2?
o until para definir uma funca
o que, dado um string s, retorne o
(c) Use a funca
string obtido removendo-se todos os caracteres iguais a branco que ocorrem
no incio de s.
r e l a c i o n a d o s (<) [ 2 , 3 , 7 , 9 ] = True
r e l a c i o n a d o s (<) [ 2 , 3 , 1 , 9 ] = F a l s e
o da funca
o de ordem
A forma de Horner tambem pode ser expressa como aplicaca
o seguinte de forma a que a igualdade seja
superior foldr . Complete a definica
correta.
cs
horner cs z = foldr
o mapFold f :: [a] -> [a] usando a funca
o foldr.
18. Defina a funca
o filterFold p :: [a] -> [a] usando a funca
o foldr.
19. Define a funca
=
= prefixos
++ [ xs ]
o
(b) Defina scanSum usando compreens
ao de listas com o auxlio da funca
prefixos.
o scanSum recursivamente. Dica: use uma funca
o auxiliar
(c) Defina a funca