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