En Elixir, las listas (vinculadas) están en el formato [head | tail]
donde head puede ser cualquier cosa y tail es una lista del resto de la lista, y []
la lista vacía es la única excepción a esto.
Las listas también se pueden escribir como lo [1, 2, 3]
que es equivalente a[1 | [2 | [3 | []]]]
Su tarea es convertir una lista como se describe. La entrada siempre será una lista válida (en Elixir) que contiene solo números que coinciden con la expresión regular \[(\d+(, ?\d+)*)?\]
. Puede tomar la entrada con (un espacio después de cada coma) o sin espacios. La salida puede ser con (un espacio antes y después de cada uno |
) o sin espacios.
Para entradas con ceros a la izquierda, puede emitir sin ceros o con.
La entrada debe tomarse como una cadena (si se escribe una función), al igual que la salida.
Ejemplos
[] -> []
[5] -> [5 | []]
[1, 7] -> [1 | [7 | []]]
[4, 4, 4] -> [4 | [4 | [4 | []]]]
[10, 333] -> [10 | [333 | []]]
relacionado , no un duplicado, ya que esto en parte implica agregar modo ]
al final. Además, la respuesta de Haskell aquí es bastante diferente a la de allí.