Certains esolangs bidimensionnels, tels que Forked , et certains non-esolangs, tels que Python , peuvent parfois nécessiter des espaces avant les lignes de code. Ce n'est pas très golfique. De plus, je suis paresseux et j'écris un langage 2D qui a besoin de beaucoup d'espace avant le code. Votre tâche est d'écrire un outil qui rend ces langues plus golfiques.
Bien sûr, ce ne sera pas parfait; il ne peut pas être utilisé, par exemple, lorsqu'un nombre est le premier caractère d'une ligne de source. Cependant, cela sera généralement utile.
Défi
Vous écrirez un programme ou une fonction qui soit ...
- ... prend un argument, un nom de fichier ou une chaîne, ou ...
- ... lit à partir de l'entrée standard.
Votre programme agira comme cat
, sauf:
- Si le premier caractère d'une ligne est un nombre, votre code affichera x espaces, où x est ce nombre.
- Sinon, il sera simplement imprimé.
- Comme tous les autres caractères de l'entrée.
Cas de test
Contribution:
foo bar foo bar
1foo bar foo bar foo bar
2foo bar foo bar foo bar foo bar
Production:
foo bar foo bar
foo bar foo bar foo bar
foo bar foo bar foo bar foo bar
Contribution:
--------v
8|
8|
80
8,
7&
Production:
--------v
|
|
0
,
&
Contribution:
foo bar
bar foo
foo bar
Production:
foo bar
bar foo
foo bar
Contribution:
0123456789
1234567890
2345678901
3456789012
4567890123
Production:
123456789
234567890
345678901
456789012
567890123
Règles
- La sortie doit être exactement comme l'entrée, sauf pour les lignes où le premier caractère est un nombre.
- Votre programme ne peut rien ajouter / ajouter au début du fichier, sauf un saut de ligne si vous le souhaitez.
- Votre programme peut ne faire aucune hypothèse sur l'entrée. Il peut contenir des lignes vides, pas de chiffres, des caractères Unicode, peu importe.
- Si un nombre avec plus d'un chiffre commence une ligne (par exemple
523abcdefg
), seul le premier chiffre (dans l'exemple, 5) doit se transformer en espaces.
Gagnant
Le code le plus court dans chaque langue gagne. Amuse-toi bien et bonne chance!
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.
Ce n'est pas vrai, il suffit de mettre le premier caractère à 0 (ahem, votre dernier cas de test)