Fazer 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á então uma lista
de listas. Se a entrada for (a b c)
, por
exemplo, 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
importa).
Escolha um bom nome para ela.
Fazer uma função que recebe uma lista e retorna 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 saída deve ser
((a 3) (x 4) (b 2))
ou outra lista com os mesmos elementos em outra ordem.
Fazer uma função que recebe duas listas e
verifica se a primeira é uma sublista da segunda, isto
é, se a primeira pode ser obtida pela
remoção de zero ou mais elementos da segunda.
Por exemplo, (a b c)
é sublista de
(a x b f e c a b)
, mas não de (b a c
b a)
.