Algunos esolangs bidimensionales, como Forked , y algunos no esolangs, como Python , a veces pueden requerir espacios antes de las líneas de código. Esto no es muy golfoso. Además, soy flojo y escribo un lenguaje 2D que necesita muchos espacios antes del código. Su tarea es escribir una herramienta que haga que estos idiomas sean más golfistas.
Por supuesto, esto no será perfecto; no se puede usar, por ejemplo, cuando un número es el primer carácter en una línea de origen. Sin embargo, generalmente será útil.
Desafío
Escribirás un programa o función que ...
- ... toma un argumento, un nombre de archivo o una cadena, o ...
- ... lee de la entrada estándar.
Su programa actuará como cat
, excepto:
- Si el primer carácter en cualquier línea es un número, su código imprimirá x espacios, donde x es ese número.
- De lo contrario, simplemente se imprimirá.
- Como lo hará cualquier otro personaje en la entrada.
Casos de prueba
Entrada:
foo bar foo bar
1foo bar foo bar foo bar
2foo bar foo bar foo bar foo bar
Salida:
foo bar foo bar
foo bar foo bar foo bar
foo bar foo bar foo bar foo bar
Entrada:
--------v
8|
8|
80
8,
7&
Salida:
--------v
|
|
0
,
&
Entrada:
foo bar
bar foo
foo bar
Salida:
foo bar
bar foo
foo bar
Entrada:
0123456789
1234567890
2345678901
3456789012
4567890123
Salida:
123456789
234567890
345678901
456789012
567890123
Reglas
- La salida debe ser exactamente como entrada, excepto para las líneas donde el primer carácter es un número.
- Su programa no puede agregar / anteponer nada al archivo, excepto una nueva línea final si lo desea.
- Su programa puede no hacer suposiciones sobre la entrada. Puede contener líneas vacías, sin números, caracteres Unicode, lo que sea.
- Si un número con más de un dígito comienza una línea (por ejemplo
523abcdefg
), solo el primer dígito (en el ejemplo, 5) debe convertirse en espacios.
Ganador
El código más corto en cada idioma gana. ¡Diviértete y buena suerte!
Of course, this will not be perfect; it cannot be used, for instance, when a number is the first character on a line of source.
No es cierto, simplemente ponga el primer personaje en 0 (ejem, su último caso de prueba)