MC600 - Segundo semestre de 2003 - LISTA 7 ------------------------------------------ 1. Faça uma função que recebe uma lista l e retorna uma lista com todas as possíveis permutações dos elementos de l. A resposta será uma lista de listas. Se a entrada for (a b c), a saída poderá ser ((a b c) (c b a) (a c b) (b c a) (c a b) (b a c)), ou qualquer outra lista com os mesmos elementos (a ordem não é importante). 2. Faça uma função que receba uma lista e retorne quantas vezes cada elemento apareceu na lista de entrada. Por exemplo, se a entrada for: (x a b a b x a x x) então há 4 'x, 3 'a e 2 'b, e a sua saída deve ser: ((a 3) (x 4) (b 2)) ou outra lista com os mesmos elementos em outra ordem. 3. Ordene uma lista por merge sort.