Niektóre dwuwymiarowe esolangi, takie jak Forked , i niektóre inne niż esolangi, takie jak Python , mogą czasem wymagać spacji przed wierszami kodu. To nie jest bardzo golfowe. Poza tym jestem leniwy i piszę język 2d, który wymaga dużo spacji przed kodem. Twoim zadaniem jest napisanie narzędzia, które uczyni te języki golfistami.
Oczywiście nie będzie to idealne; nie można go użyć na przykład, gdy liczba jest pierwszym znakiem w linii źródła. Jednak na ogół przyda się.
Wyzwanie
Napisz program lub funkcję, która albo ...
- ... pobiera jeden argument, nazwę pliku lub ciąg znaków, lub ...
- ... odczytuje ze standardowego wejścia.
Twój program będzie działał tak cat
, z wyjątkiem:
- Jeśli pierwszym znakiem w dowolnym wierszu jest liczba, kod wypisze x spacji, gdzie x to ta liczba.
- W przeciwnym razie zostanie po prostu wydrukowany.
- Podobnie jak każdy inny znak na wejściu.
Przypadki testowe
Wejście:
foo bar foo bar
1foo bar foo bar foo bar
2foo bar foo bar foo bar foo bar
Wynik:
foo bar foo bar
foo bar foo bar foo bar
foo bar foo bar foo bar foo bar
Wejście:
--------v
8|
8|
80
8,
7&
Wynik:
--------v
|
|
0
,
&
Wejście:
foo bar
bar foo
foo bar
Wynik:
foo bar
bar foo
foo bar
Wejście:
0123456789
1234567890
2345678901
3456789012
4567890123
Wynik:
123456789
234567890
345678901
456789012
567890123
Zasady
- Dane wyjściowe muszą być dokładnie takie same jak dane wejściowe, z wyjątkiem wierszy, w których pierwszy znak jest liczbą.
- Twój program nie może dodawać / dodawać niczego do pliku, z wyjątkiem jednej nowej linii, jeśli chcesz.
- Twój program może nie przyjmować żadnych założeń dotyczących danych wejściowych. Może zawierać puste linie, bez cyfr, znaków Unicode, cokolwiek.
- Jeśli liczba składająca się z więcej niż jednej cyfry rozpoczyna wiersz (np.
523abcdefg
), Tylko pierwsza cyfra (w przykładzie 5) powinna zamienić się w spacje.
Zwycięzca
Wygrywa najkrótszy kod w każdym języku. Baw się dobrze i powodzenia!
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.
Nieprawda, po prostu