Rebmu : 9 (벌금 포함) 또는 13 (없이)
지루한 Rebmu 솔루션은 9이며 회문 페널티를받습니다. 어쨌든 "왜냐하면"표시하겠습니다.
rnRVaVRnr
대문자로 된 글자를 알아 차리는 엄청나게 트릭을 사용하는 것은 별개의 단어이며, 선행 대문자가 없다는 것은 우리가 단어를 만들지 않는다는 것을 의미합니다.
rn rv a vr nr
다음은 동등한 코드 (약식 Rebmu)의 약자입니다.
return reverse a vr nr
vr과 nr이 의미가 없다는 사실은 중요하지 않습니다. 왜냐하면 아무것도 할당되지 않았지만 유효한 단어이기 때문입니다. 따라서 평가자는return reverse a
는 두 가지 방식으로 만 작동합니다. 그러나 이것은 지루한 속임수와 비슷한 의미입니다. 코드는 주석 처리되지 않지만 한 경로에서 실행되지 않고 실행되지 않습니다.
패널티를 발생시키지 않는 더 흥미로운 것을 위해이 13 문자 솔루션은 어떻습니까?
a VR :rv AvrA
확장 될 때 정방향 및 역방향 경로에서 처리되는 방식을 살펴 보겠습니다. 앞으로:
a ; evaluate a, as it is a string it has no side effects
vr: :reverse ; "set" vr to mean what a "get" of reverse means now
a: vr a ; assign a to calling "vr" on a, effectively reversing
; ^-- result of assign is last expression, the answer!
거꾸로 ArvA vr: RV a
:
a: reverse a ; assign A to its reversal
vr: rv: a ; make the abbreviation vr equal to assignment of a to rv
; ^-- result of assign is last expression, the answer!
단점으로, 이전 버전의 변형은 역의 약어를 덮어 씁니다. 그러나 이것은 회문이 아니며 단지 13 자입니다. :-)
(참고 : 이것은 / args 모드에서 Rebmu를 실행한다고 가정합니다. 여기서 a는 명령 행에서 인터프리터에 전달 된 프로그램의 기본 인수이며 결과를 승인합니다. 표준 입력에서 읽는 것이 실제로 필요한 경우 예를 들어 간단한 해결책을 위해 9에서 11 자로 자랍니다 rnRVrArVRnr
. 그리고 두 문자를 추가하는 인터프리터의 표현식 출력을 수락하는 대신 프로그램 내에서 표준 출력으로 인쇄해야하는 경우)
-1%#%1-/1
나-1%#%(0
?