Примітка. Це номер 2 у ряді проблем з маніпулюванням масивом . Для попереднього виклику натисніть тут .
Розділення вкладених списків
Для відокремлення значень у вкладеному списку вирівняйте його та оберніть кожне значення таким чином, щоб воно було на тій самій вкладеній глибині, як раніше.
Тобто цей список:
[1, [2, 3], [4, 4, [5, 2], 1]]
Стають:
[1, [2], [3], [4], [4], [[5]], [[2]], [1]]
Змагання
Ваше завдання - написати програму, яка приймає будь-який вкладений список натуральних чисел (в межах вашої мови) і виконує цю операцію розділення.
Ви можете подати функцію, яка сприймає список як аргумент, або повну програму, яка виконує введення-виведення.
Оскільки це код-гольф , виграє найкоротше (у байтах) *
* Стандартні лазівки для гольфу заборонені. Ви знаєте дриль.
Випробування
Списки введення містять лише цілі числа у стандартному цілому розмірі вашої мови. Щоб уникнути обмежень мов, які заважають їм конкурувати, значення не вкладаються на глибині більше 10.
Ви можете припустити, що вхідні дані не матимуть порожніх під-списків: наприклад - [[5, []]]
не даватимуться. Однак основний список може бути порожнім.
[] -> []
[[1, 2]] -> [[1], [2]]
[3, [4, 5]] -> [3, [4], [5]]
[3, [3, [3]]] -> [3, [3], [[3]]]
[[6, [[7]]]] -> [[6], [[[7]]]]
[[5, 10], 11] -> [[5], [10], 11]
Не соромтесь залишити коментар, якщо я пропустив кутовий випадок.
Приклад
Я кинув разом швидкий (ungolfed) Python рішення 3 в Як приклад - ви можете перевірити його на repl.it .