Для этой задачи вы создадите функцию (ваша функция может быть полной программой), которая принимает список в качестве входных данных и возвращает перестановку этого списка. Ваша функция должна соответствовать следующим требованиям.
Это должно быть детерминированным.
Составление вашей функции с самим собой переменное число раз должно быть в состоянии получить список для любой из ее перестановок.
Это вопрос кода-гольфа, поэтому ответы будут оцениваться в байтах, причем меньше байтов будет лучше.
Дальнейшие правила
Вы можете взять любой тип списка, (
[Integer],[String],[[Integer]]) до тех пор , как это- Может быть не пустым
- Может содержать отдельные объекты с не менее 16 возможных значений. (Вы не можете использовать Haskell
[()]и заявить, что ваша функция естьid) - Может содержать повторяющиеся объекты (без наборов)
Вы можете написать программу или функцию, но должны подчиняться стандартному IO.
next_permutationфункцию.

S_nэто только цикличность дляn<3