Para esse desafio, você criará uma função (sua função pode ser um programa completo) que recebe uma lista como entrada e retorna uma permutação dessa lista. Sua função deve obedecer aos seguintes requisitos.
Deve ser determinístico.
A composição da sua função consigo um número variável de vezes deve ser capaz de obter uma lista para qualquer uma de suas permutações.
Esta é uma questão de código-golfe, para que as respostas sejam pontuadas em bytes, com menos bytes sendo melhores.
Regras adicionais
Você pode tomar qualquer tipo de lista, (
[Integer],[String],[[Integer]]) desde que- Pode não estar vazio
- Pode conter objetos distintos com pelo menos 16 valores possíveis. (Você não pode usar um Haskell
[()]e afirmar que sua função éid) - Pode conter objetos duplicados (sem conjuntos)
Você pode escrever um programa ou uma função, mas deve obedecer a IO padrão.
next_permutationfunção.

S_nsó é cíclica paran<3