Forked 와 같은 일부 2 차원 esolang 과 Python 과 같은 비등 어 (non-esolang )는 때때로 코드 행 앞에 공백이 필요할 수 있습니다. 이것은 골프가 아닙니다. 또한, 나는 게으르고 코드 전에 많은 공간이 필요한 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
규칙
- 첫 문자가 숫자 인 행을 제외하고 출력은 정확히 입력과 같아야합니다.
- 프로그램은 원하는 경우 후행 줄 바꿈을 제외하고 파일에 아무것도 추가하거나 추가 할 수 없습니다.
- 프로그램이 입력에 대해 가정하지 않을 수 있습니다. 빈 줄, 숫자 없음, 유니 코드 문자 등을 포함 할 수 있습니다.
- 두 자리 이상의 숫자가 줄 (예 :)을 시작
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으로 만드십시오 (ahem, 마지막 테스트 사례)