などのいくつかの二次元esolangs、フォークなど、およびいくつかの非esolangs、Pythonは、時々 、コードの行の前にスペースを必要とすることができます。これはあまりゴルフではありません。また、私は怠け者で、コードの前に多くのスペースを必要とする2D言語を書いています。あなたの仕事は、これらの言語をゴルファーにするツールを書くことです。
もちろん、これは完璧ではありません。たとえば、ソースの行の最初の文字が数字の場合は使用できません。ただし、通常は有用です。
チャレンジ
次のいずれかのプログラムまたは関数を作成します...
- ... 1つの引数、ファイル名または文字列、または...
- ...標準入力から読み取ります。
あなたのプログラムは次のような動作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文字などを含む場合があります。
- 1桁以上の数字で行が始まる場合(例
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.
真実ではありません。最初の文字を0にしてください(最後のテストケース)