某些二维esolang(例如Forked)和某些非eolang(例如Python)有时可能在代码行之前需要空格。这不是高尔夫运动。另外,我很懒,在编写2d lang之前需要很多空格。您的任务是编写一个使这些语言更具特色的工具。
当然,这不是完美的。例如,当数字是源代码行中的第一个字符时,就不能使用它。但是,它通常是有用的。
挑战
您将编写一个程序或函数,该程序或函数可以...
- ...采用一个参数,文件名或字符串,或者...
- ...从标准输入中读取。
您的程序的行为类似于cat
,除了:
- 如果任一行的第一个字符是数字,则您的代码将打印x个空格,其中x是该数字。
- 否则,将仅打印它。
- 输入中的所有其他字符也一样。
测试用例
输入:
foo bar foo bar
1foo bar foo bar foo bar
2foo bar foo bar foo bar foo bar
输出:
foo bar foo bar
foo bar foo bar foo bar
foo bar foo bar foo bar foo bar
输入:
--------v
8|
8|
80
8,
7&
输出:
--------v
|
|
0
,
&
输入:
foo bar
bar foo
foo bar
输出:
foo bar
bar foo
foo bar
输入:
0123456789
1234567890
2345678901
3456789012
4567890123
输出:
123456789
234567890
345678901
456789012
567890123
规则
- 输出必须与输入完全相同,但第一个字符是数字的行除外。
- 您的程序无法在文件中追加/添加任何内容,但如果需要,可以在结尾加上换行符。
- 您的程序可能不假设输入内容。它可能包含空行,无数字,Unicode字符等。
- 如果一个数字多于一个数字开始一行(例如
523abcdefg
),则只有第一个数字(在本例中为5)应该变成空格。
优胜者
每种语言中最短的代码将获胜。玩得开心,祝你好运!
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.
不正确,只需将第一个字符