У Elixir (пов'язані) списки є у форматі, [head | tail]
де голова може бути будь-чим, а хвіст - списком решти списку, і[]
- порожній список - єдиний виняток із цього.
Списки також можуть бути написані так, [1, 2, 3]
що еквівалентно[1 | [2 | [3 | []]]]
Ваше завдання - перетворити список, як описано. Вхід завжди буде дійсним списком (в Elixir), що містить лише числа, що відповідають регулярному вираженню \[(\d+(, ?\d+)*)?\]
. Ви можете взяти вхід із (один пробіл після кожної коми) або без пробілів. Вихід може бути з (один проміжок перед і після кожного |
) або без пробілів.
Для входів з провідними нулями ви можете виводити або без нулів, або з.
Введення слід сприймати як рядок (якщо пишеться функція), як і вихідний.
Приклади
[] -> []
[5] -> [5 | []]
[1, 7] -> [1 | [7 | []]]
[4, 4, 4] -> [4 | [4 | [4 | []]]]
[10, 333] -> [10 | [333 | []]]
пов'язані , а не дублікат, оскільки це частково передбачає додавання режиму ]
до кінця. Крім того, відповідь Хаскелла тут зовсім інша, ніж відповідь.