Alguns esolangs bidimensionais, como Forked , e outros não-esolangs, como Python , às vezes podem exigir espaços antes das linhas de código. Isso não é muito golfe. Além disso, sou preguiçoso e escrevo uma linguagem 2D que precisa de muitos espaços antes do código.Sua tarefa é escrever uma ferramenta que torne esses idiomas mais eficientes.
Claro, isso não será perfeito; não pode ser usado, por exemplo, quando um número é o primeiro caractere em uma linha de origem. No entanto, geralmente será útil.
Desafio
Você escreverá um programa ou função que ...
- ... usa um argumento, um nome de arquivo ou uma string ou ...
- ... lê da entrada padrão.
Seu programa agirá como cat
, exceto:
- Se o primeiro caractere de qualquer linha for um número, seu código imprimirá x espaços, onde x é esse número.
- Caso contrário, será simplesmente impresso.
- Como qualquer outro caractere na entrada.
Casos de teste
Entrada:
foo bar foo bar
1foo bar foo bar foo bar
2foo bar foo bar foo bar foo bar
Resultado:
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&
Resultado:
--------v
|
|
0
,
&
Entrada:
foo bar
bar foo
foo bar
Resultado:
foo bar
bar foo
foo bar
Entrada:
0123456789
1234567890
2345678901
3456789012
4567890123
Resultado:
123456789
234567890
345678901
456789012
567890123
Regras
- A saída deve ser exatamente como a entrada, exceto para as linhas em que o primeiro caractere é um número.
- Seu programa não pode acrescentar / acrescentar nada ao arquivo, exceto uma nova linha à direita, se desejar.
- Seu programa pode não fazer suposições sobre a entrada. Pode conter linhas vazias, sem números, caracteres Unicode, qualquer que seja.
- Se um número com mais de um dígito inicia uma linha (por exemplo
523abcdefg
), apenas o primeiro dígito (no exemplo, 5) deve se transformar em espaços.
Vencedora
O código mais curto em cada idioma vence. Divirta-se e boa sorte!
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.
Não é verdade, basta fazer o primeiro caractere a 0 (ahem, seu caso de teste última)