Dado uma coleção coll
, por exemplo, [:a :b :c :d :e]
e um predicado pred
, por exemplo #{:c}
,
implementar uma função promover
que recebe (promover #{:c} [:a :b :c :d :e])
e retorna a
coleção com o elemento selecionado "uma posição a frente": [:a :c :b :d :e]
Implementar também a função rebaixar
, com a mesma assinatura, porém resulta em [:a :b :d :c :e]
Os casos de borda (elementos repetidos, agrupamentos degenerados) não são importantes.
O unico caso de teste realmente necessário é o descrito no enumciado:
- o
pred
só irá bater em um elemento - o elemento não estará em nenhuma das extremidades da lista
Fazer uma função promover+rebaixar
genérica, onde o pred
retorna um int?
que indica quantas posições
o elemento será promovido/rebaixado.