COBOL은 매우 오래된 언어이며, 작성 당시 58 세입니다. 실제로 너무 오래되어서 매우 흥미로운 특징이 있습니다. 각 줄의 처음 6자는 주석입니다.
왜 이런가요? 이 6 개의 문자는 프로그램이 완전히 디지털화되지 않고 컴퓨터에 입력되지 않은 당시의 줄 번호로 사용되었습니다.
또한 일곱 번째 문자는 매우 작은 세트의 일부일 수 있습니다 (일반적으로 *
행 번호를 코드와 구분하기 위해 행이나 공백을 주석 처리해야 함)
그러나 더 많은 디지털 시스템을 사용하고 있고 원시 프로그램을 원한다면 어떻게해야합니까?
댓글 시스템
COBOL에는 두 가지 유형의 주석 (줄 주석 및 위에서 언급 한 "행 번호"주석)이 있습니다.
주석을 해제하는 것은 간단합니다. 각 줄에서 처음 7 자 (6 + 한 칸) 만 빼십시오.
000000 apple
000001 banana
celery donuts
될 것입니다 :
apple
banana
donuts
줄 설명은 좀 더 어려워집니다. 행 주석은 *
다음과 같이 행의 일곱 번째 문자 위치에 별표로 시작됩니다 .
000323* this is a comment
이것은 라인 주석이 아닙니다.
*00000 this isn't a comment
줄 설명의 주석을 해제하려면 전체 줄을 제거하십시오.
예를 들어 "프로그램"은 다음과 같습니다.
000000 blah blah
000001* apples
000002 oranges?
000003* yeah, oranges.
000*04 love me some oranges
주석 처리되지 않은 버전 :
blah blah
oranges?
love me some oranges
즉, 문자열 주석을 해제하려면 각 줄의 처음 6자를 제거하고 별표로 시작하지 않는 모든 줄의 첫 번째 문자를 제외한 모든 문자를 반환하십시오.
도전
주석 처리 된 프로그램을 사용하고 주석 처리되지 않은 변형을 리턴하는 프로그램 또는 함수를 작성하십시오.
설명
- 별표 (
*
)는 한 줄에서 처음 7 자 이외의 곳에서는 찾을 수 없습니다 (구문 확인을 요구하지는 않음) - 각 줄은 항상 7 자 이상이어야합니다.
- 일곱 번째 문자는 항상 별표 또는 공백이라고 가정 할 수 있습니다.
- 입력 또는 출력은 행렬 또는 목록 일 수 있습니다.
- 인쇄 가능한 ASCII 문자 (및 개행 문자) 만 처리해야합니다.
- 후행 줄 바꿈으로 출력 할 수 있습니다. 원하는 경우 입력에 후행 줄 바꿈이 있다고 가정 할 수도 있습니다.
채점
이것이 code-golf 이므로 최소 바이트를 가진 답이 이깁니다!
면책 조항 : 나는 실제로 COBOL을 모르고 주장하지 않습니다. 이 질문에서 내가 작성한 COBOL에 대한 주장 중 하나라도 부정확 한 경우, 나는 책임을지지 않습니다.
*
있습니다. 우연의 일치입니까?
key:{key:{key:length,key:length}}
. 그래도 모든 서식 데이터와 입력 데이터를 제거합니다.