Linguagens de Programação 2/1A Prova 1 -- 05/06/96 1) Faça a inferência de tipos das seguintes funções e expressões: (1.0) f a b c = c (a b) (a b b) (0.5) map (+) (1.0) (.) map map 2) Horas do dia podem ser representadas uma tupla de três inteiros, (hora, minuto, segundo). Defina funções para: (0.5) converter de segundos para hora do dia, e de hora do dia para segundos. (1.0) incrementar um segundo à hora do dia (sem usar as funções acima). (1.0) fazer a soma de duas horas (sem usar as funções acima). 3) Um sorteio da loto pode ser representado por uma lista de cinco números. Um conjunto de cartões de apostas pode ser representado por uma lista de listas (cada lista representando um cartão). Assuma que o prêmio e os números em cada cartão estão ordenados. Defina funções para: (0.5) retornar o numero de cartões premiados com a quina. (0.5) retornar uma lista de inteiros contendo o(s) indice(s) dos cartões premiados com a quina. (0.5) retornar o número de acertos em um cartão. (0.5) retornar uma tupla de três inteiros contendo a quantidade de cartões premiados com ternos, quadras e quinas, respectivamente. (1.0) retornar uma tupla de três listas de inteiros contendo o índice dos cartões premiados com ternos, quadras e quinas, respectivamente. 4) (1.0) Prove por indução a seguinte propriedade: map (f . g) xs = map f (map g xs) 5) (1.0) Defina uma função que faça a transposição de uma matriz, i.e. f [[1,2,3],[4,5,6]] = [[1,4],[2,5],[3,6]]