Linguagem de Programacao 2/1A Prova 1 -- 23/09/96 1) Faca a inferencia de tipos das seguintes funcoes e expressoes: (1.0) f x y = (map x) . (map y) (1.0) map (filter even) 2) Mostre a avaliacao das seguintes expressoes: (1.0) f (*2) fst [(1,2),(3,4)] (1.0) map (foldr (+) 0) [[1,2],[3,4],[5,6]] 3) uma base de dados pode ser representada por uma lista de tuplas, cada tupla representando informacoes sobre um funcionario: (nome, cargo, salario). Faca funcoes para: (1.0) retornar uma lista com as informacoes sobre os funcionarios que tenham salario entre x e y e que possuem um cargo c. (1.0) dada uma lista com os aumentos a serem dados para cada cargo (cargo, aumento) faca uma funcao que retorne a base de dados de funcionarios apos o aumento. 4) Dada uma matriz representada por uma lista de listas, defina funcoes para: (1.0) trocar a posicao de duas linhas dadas (x e y). Assuma que x < y. (1.0) retornar a diagonal de uma matriz quadrada. (1.0) dada uma lista de listas indicar se esta lista de listas e' uma matriz (i.e. todas suas linhas tem o mesmo tamanho). 5) (1.0) Defina uma funcao applyIf que dada uma condicao c, uma funcao f e uma lista l retorna a lista com a funcao f aplicada aos elementos que satisfizerem a condicao c: applyIf even (+1) [1,2,3,4,5,6] = [1,3,3,5,5,7]