요약
문자 만 사용하여 새로운 문자열 조작 언어가 만들어졌습니다 $+#-!*|@>
! 귀하의 작업은 가능한 한 적은 바이트로 해석기를 구현하는 것입니다.
입력
이 언어의 한 줄인 문자열입니다. 이것은 합리적인 방법 (stdin, function parameter, command line argument 등) 또는 사전 정의 된 변수로 취할 수 있습니다. 프로그램이 사용자 입력을 요청하면 stdin에서 요청하는 모든 사용자 입력을 수락하고 더 이상 아무것도하지 마십시오 . 아래를 참조하십시오. 유효한 프로그램이라고 가정 할 수 있습니다.
산출
언어가 무엇을 출력하든 아래 사양을 참조하십시오. 합리적인 방법 (stdout, 함수 출력 등) 또는 변수 값으로 문자열을 출력해야합니다. 언어가 명시 적으로 출력이 필수 stdout으로 이동 . 표준 허점은 금지되어 있습니다.
언어 사양
처리 및 구문
이 언어는 문자열 조작 만하기 때문에 매우 간단한 형태의 처리 방식을 가지고 있습니다. 언어는 빈 문자열 ( ""
)로 시작 하여 각 용어로 변경됩니다. 용어는 하나 또는 두 부분으로 구성됩니다. 기능 (아래)과 매개 변수 (아래)가 동작을 편집합니다. 용어는 파이프 ( |
) 로 구분됩니다 . 빈 프로그램이 아니라고 가정 할 수 있으며 비어있는 용어는 없습니다. 프로그램 끝에서 값을 출력해야합니다.
기능
이 언어에는 아래에 표시된 것처럼 6 개의 기능 만 있습니다. 각 함수는 하나 또는 0 개의 매개 변수를 허용합니다.
+
문자열 연결 (하나의 문자열 매개 변수를 사용하여 현재 값으로 연결)!
현재 값의 문자 순서를 반대로합니다 (매개 변수 없음)*
문자열을 반복합니다 (한 개의 정수 매개 변수를 사용하고 현재 값을 여러 번 반복 함)-
값의 모든 항목을 제거합니다 (하나의 문자열 매개 변수를 취하여 현재 값에서 모든 항목을 제거함)$
[의사-] 현재 값을 임의로 셔플합니다 (매개 변수 없음)<
현재 값을stdout
매개 변수없이 출력
가치
다음은 정규식으로 표시되는 함수에 전달 될 수있는 값입니다.
@[^|]*
파이프 이외의 문자를 포함한 문자열 리터럴 비어있을 수 있습니다.#[0-9]+
정수 리터럴>
의 다음 줄stdin
. 와 함께 사용*
하면 정수로 변환하십시오.
테스트 사례
╔════════════════════════╤═════════════╤══════════════╗
║code │input │output ║
╟────────────────────────┼─────────────┼──────────────╢
║+>|!|+@hello|*> │13 │31hello31hello║
║ │2 │ ║
╟────────────────────────┼─────────────┼──────────────╢
║+>|+@abcdefg|$ │hello │hcloeebafdlg ║
╟────────────────────────┼─────────────┼──────────────╢
║+@how areyou|-@o|-> │w │h areyu ║
╟────────────────────────┼─────────────┼──────────────╢
║+@out|<|*#3 │ │out ║
║ │ │outoutout ║
╟────────────────────────┼─────────────┼──────────────╢
║+> │what ever 345│what ever 345 ║
╟────────────────────────┼─────────────┼──────────────╢
║+@$pe<i@l|<|-@$pe<i@l|+>│A|$o $pe<!@| │$pe<i@l ║
║ │ │A|$o $pe<!@| ║
╟────────────────────────┼─────────────┼──────────────╢
║<|+>|!|< │input text | ║
║ │ │txet tupni ║
║ │ │txet tupni ║
╟────────────────────────┼─────────────┼──────────────╢
║+@># │ |># ║
╚════════════════════════╧═════════════╧══════════════╝
테스트 사례 2는 임의이므로 임의의 문자 순열이 유효합니다. 또한 테이블의 출력은 줄 바꿈으로 구분되지만 프로그램은 동일하지 않아도됩니다. 각 경우의 마지막 값은 최종 출력입니다.
예 (골프가 아닌) 파이썬 인터프리터
온라인으로 사용해보십시오! IDLE 또는 사용하는 모든 것을 통해 IMO를 실행하면 더 좋습니다. (후에 424 바이트로 골프를 쳤지 만 더 잘 할 수 있다고 확신합니다).
<
는 마주 칠 때마다 줄 바꿈을 인쇄하는 것 같습니다 . 이것이 필수입니까?
+@>#
무엇입니까? 나는 또한 사용했다 #
.