Einige zweidimensionale Esolangs wie Forked und einige Nicht-Esolangs wie Python können manchmal Leerzeichen vor Codezeilen erfordern. Das ist nicht sehr golfen. Außerdem bin ich faul und schreibe eine 2D-Sprache, die vor dem Code viele Leerzeichen benötigt. Ihre Aufgabe ist es, ein Tool zu schreiben, mit dem Sie diese Sprachen Golf spielen können.
Natürlich wird dies nicht perfekt sein; Sie kann beispielsweise nicht verwendet werden, wenn eine Zahl das erste Zeichen in einer Quellzeile ist. Es wird jedoch im Allgemeinen nützlich sein.
Herausforderung
Sie werden ein Programm oder eine Funktion schreiben, die entweder ...
- ... nimmt ein Argument, einen Dateinamen oder eine Zeichenfolge, oder ...
- ... liest aus der Standardeingabe.
Ihr Programm verhält sich wie folgt cat
:
- Wenn das erste Zeichen in einer Zeile eine Zahl ist, gibt Ihr Code x Leerzeichen aus, wobei x diese Zahl ist.
- Andernfalls wird es einfach gedruckt.
- Wie jedes andere Zeichen in der Eingabe.
Testfälle
Eingang:
foo bar foo bar
1foo bar foo bar foo bar
2foo bar foo bar foo bar foo bar
Ausgabe:
foo bar foo bar
foo bar foo bar foo bar
foo bar foo bar foo bar foo bar
Eingang:
--------v
8|
8|
80
8,
7&
Ausgabe:
--------v
|
|
0
,
&
Eingang:
foo bar
bar foo
foo bar
Ausgabe:
foo bar
bar foo
foo bar
Eingang:
0123456789
1234567890
2345678901
3456789012
4567890123
Ausgabe:
123456789
234567890
345678901
456789012
567890123
Regeln
- Die Ausgabe muss genau wie die Eingabe erfolgen, außer in Zeilen, in denen das erste Zeichen eine Zahl ist.
- Ihr Programm kann nichts an die Datei anhängen / voranstellen, außer eine abschließende Newline, wenn Sie dies wünschen.
- Ihr Programm kann keine Annahmen über die Eingabe treffen. Es kann leere Zeilen, keine Zahlen oder Unicode-Zeichen enthalten.
- Beginnt eine Zahl mit mehr als einer Ziffer eine Zeile (z. B.
523abcdefg
), sollte nur die erste Ziffer (im Beispiel 5) in Leerzeichen umgewandelt werden.
Gewinner
Der kürzeste Code in jeder Sprache gewinnt. Viel Spaß und viel Glück!
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.
Nicht wahr, machen Sie einfach das erste Zeichen zu einer 0 (ähm, Ihr letzter Testfall)