Sei sulla pagina 1di 1

(b) maximum ::

Num a => [a] -> a

(c) maximum ::

[a] -> a

12. A sada de length [x+y | x <- [1..10], y <- [1..5], x>y] deve ser

o Funcional
Programaca
Lista de Exerccios 01

(a) 100
(b) 25
(c) 70
(d) 35

Prof. Wladimir Ara


ujo Tavares

(e) 50
o f xs = reverse xs == xs ?
13. Qual dos seguintes tipos e admissvel para a funca

o seguinte?
1. Qual e o tipo mais geral para a definica
h x y = if x>=y then x-y else y-x

(a) f ::

[Int] -> Bool

(b) f ::

[Int] -> Int

(c) f ::

[Bool] -> [Bool]

o elem do prel
14. Qual e o tipo mais geral admissvel para a funca
udio-padr
ao que
verifica se um valor ocorre numa lista?

(a) h ::

(Ord a, Eq a) => a -> a -> a

(b) h ::

(Num a, Ord a) => a -> a -> a

(a) elem ::

a -> [a] -> Bool

(c) h ::

(Num a, Eq a) => a -> a -> a

(b) elem ::

Ord a => a -> [a] -> Bool

(c) elem ::

Eq a => a -> [a] -> Bool

2. Qual o resultado da express


ao filter ( \ x-> mod x 2 ==0) [0..9] ?

o haskell,
15. Seja a funca

(a) [1,3,5,7,9]
(b) [0,2,4,6,8]

teste u n = [sum [y+n | y <- (take w u)] | w <- [1..length u]]

(c) [0]
Ent
ao teste [1,2,3] 3 retorna,

3. Qual e o resultado da express


ao length [0,2..6] ?
(a) 4

(a) [3,8,14]

(b) 5

(b) [2,12,45]
(c) [1,6,12]

(c) 6

(d) [0,10,25]

o seguinte?
4. Qual dos tipos e admissvel para a definica

(e) [4,9,15]
f xs ys = sum [x*y | (x,y)<-zip xs ys]
(a) f ::

([Float],[Float]) -> Float

(b) f ::

[Float] -> [Float] -> [Float]

(c) f ::

[Float] -> [Float] -> Float

o de funca
o haskell,
16. Seja a definica
gamma [ ] =
gamma [ c ] = [ c ]
gamma ( c : u ) = c : . : gamma u

5. Qual o resultado da express


ao take 4 (drop 3 [1..]) ?

17.
18.
19.
20.
21.
22.

(a) [4,5,6,7]
(b) [3,4,5,6]
(c) [5,6,7,8]
es de tipos e correta?
6. Qual das seguintes atribuico
(a) (a,[2,3]) ::

(Char,[Int])

(b) (a,[2,3]) ::

[(Char,Int)]

(c) (a,[2,3]) ::

o INCORRETA,
Marque a proposica
gamma "casa"==> "c.a.s.a"
gamma $ .:[] ==> "."
gamma [a, b, c] ==> "a.b.c"
gamma [c, .] ==> "c."
gamma ==>
es; tenha o cuidado de incluir
Indique o tipo mais geral para as seguintes definico
es de classes no caso de operaco
es com sobrecarga.
restrico
(a) segundo xs = head (tail xs)
(b) trocar (x, y) = (y, x)

([Char],[Int])

(c) par x y = (x, y)

7. Qual e o resultado da express


ao [1]:[]:[2]:[3]:[] ?

(d) dobro x = 2*x

(a) um erro de tipos

(e) metade x = x/2

(b) [[1],[2],[3]]

(f) minuscula x = x >= a && x <= z

(c) [[1],[],[2],[3]]

(g) intervalo x a b = x >= a && x <= b

o seguinte:
8. Considere a definica

(h) palindromo xs = reverse xs == xs


(i) twice f x = f (f x)

g [] = []
g ( x : : xs ) = x : g xs

o last (que seleciona o u


ltimo elemento de uma lista) pode ser
23. Mostre que a funca
o das funco
es do prel
escrita como composica
udio-padr
ao apresentadas na primeira
es diferentes?
aula. Consegue encontrar duas definico

Qual o resultado de g "abdef" ?

es reverse, head, take, (!!), length.


Dica: Use as funco
o: a medida de um qualquer
24. Num tri
angulo, verifica-se sempre a seguinte condica
o de uma funca
o
lado e menor que a soma da dos outros dois. Complete a definica
o, o resultado deve ser um valor
triangulo a b c = ... que testa esta condica
boleano.
o inserir:
25. Construa a funca
INPUT: N
umero x e lista u de n
umeros ordenados ascendentemente
o
OUTPUT: Lista de n
umeros ordenados ascendentemente oriunda da inserca
apropriada de x em u
inserir 3 [2,7,12] ==> [2,3,7,12]
o count :: (a -> Bool) -> [a] -> Int que conta o
26. Considere uma funca
n
umero de elementos de uma lista para os quais o predicado dado e True. Exemplos:

(a) abde
(b) ae
o
(c) um erro de execuca
es f?
9. Qual das seguintes propriedades e verdadeira para todas as listas xs, ys e funco
(a) map f (xs++ys) = map f (ys++xs)
(b) map f (xs++ys) = map f ys ++ map f xs
(c) map f (xs++ys) = map f xs ++ map f ys
10. Qual o resultado da express
ao zip [1..]

"abc" ?

> count (>2) [ 0 , 1 , 2 , 3 ]


1
> count (/= a ) banana
3

(a) e uma lista finita


(b) e uma lista infinita
o
(c) um erro de execuca
o maximum cujo resultado e o maior valor
11. Qual e o tipo mais geral para a funca
duma lista?
(a) maximum ::

o recursiva da funca
o count.
(a) Escreva uma definica
o n
(b) Escreva uma definica
ao-recursiva de count usando filter e length.

Ord a => [a] -> a

Potrebbero piacerti anche