Một số esolang hai chiều, chẳng hạn như Forked và một số non-esolang, chẳng hạn như Python , đôi khi có thể yêu cầu khoảng trắng trước các dòng mã. Đây không phải là rất golf. Ngoài ra, tôi lười biếng và viết một lang 2d cần nhiều khoảng trống trước khi viết mã. Nhiệm vụ của bạn là viết một công cụ làm cho những ngôn ngữ này trở nên golf hơn.
Tất nhiên, điều này sẽ không hoàn hảo; nó không thể được sử dụng, ví dụ, khi một số là ký tự đầu tiên trên một dòng nguồn. Tuy nhiên, nó thường sẽ hữu ích.
Thử thách
Bạn sẽ viết một chương trình hoặc chức năng ...
- ... có một đối số, tên tệp hoặc chuỗi hoặc ...
- ... Đọc từ đầu vào tiêu chuẩn.
Chương trình của bạn sẽ hoạt động như thế nào cat
, ngoại trừ:
- Nếu ký tự đầu tiên trên bất kỳ dòng nào là một số, mã của bạn sẽ in x khoảng trắng, trong đó x là số đó.
- Nếu không, nó sẽ chỉ được in.
- Như mọi nhân vật khác trong đầu vào.
Các trường hợp thử nghiệm
Đầu vào:
foo bar foo bar
1foo bar foo bar foo bar
2foo bar foo bar foo bar foo bar
Đầu ra:
foo bar foo bar
foo bar foo bar foo bar
foo bar foo bar foo bar foo bar
Đầu vào:
--------v
8|
8|
80
8,
7&
Đầu ra:
--------v
|
|
0
,
&
Đầu vào:
foo bar
bar foo
foo bar
Đầu ra:
foo bar
bar foo
foo bar
Đầu vào:
0123456789
1234567890
2345678901
3456789012
4567890123
Đầu ra:
123456789
234567890
345678901
456789012
567890123
Quy tắc
- Đầu ra phải chính xác như đầu vào, ngoại trừ các dòng có ký tự đầu tiên là một số.
- Chương trình của bạn không thể nối thêm / thêm bất cứ thứ gì vào tệp, ngoại trừ một dòng mới nếu bạn muốn.
- Chương trình của bạn có thể không đưa ra giả định nào về đầu vào. Nó có thể chứa các dòng trống, không có số, ký tự Unicode, bất cứ thứ gì.
- Nếu một số có nhiều hơn một chữ số bắt đầu một dòng (ví dụ
523abcdefg
), chỉ chữ số đầu tiên (trong ví dụ, 5) mới biến thành khoảng trắng.
Người chiến thắng
Mã ngắn nhất trong mỗi ngôn ngữ sẽ thắng. Chuc vui vẻ va nhiêu may măn nhe!
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.
Không đúng, chỉ cần biến ký tự đầu tiên thành 0 (ahem, trường hợp thử nghiệm cuối cùng của bạn)