실행될 때 자체 소스 코드를 출력하는 프로그램을 작성하십시오. 쉬운 것 같아요?
중요한 점은 소스 코드가 바뀌면 프로그램이 "Hello, World!"를 출력해야한다는 것입니다. 따옴표없이 정확하게.
이것은 코드 골프이므로 바이트 수가 가장 적습니다.
편집 : 당신의 quine은 적절한 quine이어야합니다.
실행될 때 자체 소스 코드를 출력하는 프로그램을 작성하십시오. 쉬운 것 같아요?
중요한 점은 소스 코드가 바뀌면 프로그램이 "Hello, World!"를 출력해야한다는 것입니다. 따옴표없이 정확하게.
이것은 코드 골프이므로 바이트 수가 가장 적습니다.
편집 : 당신의 quine은 적절한 quine이어야합니다.
답변:
Upxp"!dlroW ,olleH"
U
U
다음 U
에 충족 될 때까지 ( 이 경우 소스 코드) 까지 문자열을 캡처합니다 . p
항목을 인쇄 x
하며 종료 링크입니다. 반대로하면 다음과 같습니다.
"Hello, World!"pxpU
이 문자열을 캡처하고로 인쇄하여 p
다시 프로그램을 종료합니다 x
.
U
U
암시 적으로 푸시 합니까? ಠ_ಠ
U
명령은 "체인 링크 캡처 명령"입니다. quining을 위해 만들어지지는 않았지만 quining에 사용하지는 않습니다. : P
p
비트가 인코딩의 일부인 출력을 했다고 생각했다 .
p
하고 x
계산하지 않을 것입니다. 예를 들어, 가장 짧은 SMBF quine은 코드에서 인쇄해야하더라도 여전히 부정 행위 quine으로 간주됩니다. 그러나 Martin에게 설명을 요구할 가치가 있습니다.
f=_=>/\//g&&"f="+f||"!dlroW ,olleH">=_
_=>"Hello, World!"||f+"=f"&&g//\/>=_=f
반대로하면 문자열을 반환하는 익명 함수가됩니다 Hello, World!
.
정규식 /\//g
은 역순 >=_=f
으로 주석이되어 역 코드에서 구문 상 유효하지 않은 주석을 주석 처리 할 수 있습니다.
=_=
.
trela=a=>alert("trela="+trela+"\ntrela\n``")//
`!dlroW ,olleH`
trela
``
1 행은 trela
실행될 때 프로그램의 소스 코드를 출력하는 기능 을 정의합니다 . 2 행은 할당되지 않은 문자열이며 아무 것도 수행하지 않습니다. 3 번과 4 번 줄 trela
은 템플릿 문자열 구문을 남용합니다.
``
alert
`Hello, World!`
//)"``n\alertn\"+alert+"=alert"(trela>=a=alert
1 행은 할당되지 않은 문자열이며 아무 것도 수행하지 않습니다. 2 행과 3 행은 인쇄 할 템플릿 문자열 구문을 남용합니다 Hello, World!
. 4 행은 주석입니다.
``
불필요합니까?
trela
전달 버전에서 함수 ( 퀴인 을 인쇄) 를 호출해야 합니다
``
논쟁 이라는 것을 몰랐다 . 멋있는.
trela
주변을 둘러 보는 데 익숙해 져야한다고 생각 합니다 ...> _>
{`".;1$~]"}"!dlroW ,olleH".;1$~]
]~$1;."Hello, World!"}"]~$1;."`{
"` '. ~]'# \"! dlroW, olleH ". ~]
하나의 후행 줄 바꿈이 있습니다. 여기에서 시도하십시오.
역전 :
] ~. "Hello, World!"\ # '] ~ .'` "
"34¤¤,,,,,,,,,,,,,% 'H'e'l'l'o',' 'w'o'r'l'd'!'"34¤¤,,,,,,,,,,,,,% 'H'e'l'l'o',' 'w'o'r'l'd'!'
역전 :
'!'d'l'r'o'w' ','o'l'l'e'H' %,,,,,,,,,,,,,¤¤43"'!'d'l'r'o'w' ','o'l'l'e'H' %,,,,,,,,,,,,,¤¤43"
STDOUT으로 출력합니다. 더 나은 퀴네 프레임 워크를 찾을 때까지 지금은 그렇게해야합니다.
"34¤¤,,,,,,,,,,,,,% 'H'e'l'l'o',' 'w'o'r'l'd'!'"
quine 문자열이 포함되어 있습니다. 반대로, 이것은 스택으로 푸시되지만 출력되지는 않습니다.
34¤¤,,,,,,,,,,,,,
따옴표 문자를 스택으로 푸시하고 출력 할 항목이 없을 때까지 결과를 두 번 출력합니다. 반대로, 이것은 이미 스택에있는 문자 코드를 인쇄합니다.
% 'H'e'l'l'o',' 'w'o'r'l'd'!'
이것은 최상위 스택 항목을 팝하고 (역 문자는 공백 문자를 팝) 스택에 일련의 문자 코드를 푸시합니다 (역순으로,이 문자 코드는 나중에 일련의에 의해 인쇄됩니다 ,
).
이 답변 에서 @ MartinBüttner의 탁월한 quine의 부끄러운 적응
'!+O!'!d'!l'!r'!o'!W'! '!,'!o'!!l'!e'!H'R"
그리고 반대로
"R'H!'e!'l!!'o!',!' !'W!'o!'r!'l!'d!'!O+!'
Quiine 버전에서 원자는 R
오른쪽 표제 에서 시작합니다 . "
시작 다음에 랩 모드 인쇄 "
(자체). 이것은를 제외한 모든 것을 인쇄합니다 "
. '!+
atom을 char로 설정하십시오 "
. O
그것을 인쇄하고 프로그램을 끝내는 원자를 파괴합니다.
반전 된 버전은 R
다시 시작 Hello, World
하여 원자 를 설정하는 각 문자에 대해 원자 !
를 파괴하지 않고 인쇄 합니다. 마지막 문자의 !
경우 인쇄 O
는 원자를 파괴합니다.
print(lambda x:x+repr(x)+")#'!dlroW ,olleH' tnirp")('print(lambda x:x+repr(x)+")#\'!dlroW ,olleH\' tnirp")(')#'!dlroW ,olleH' tnirp
print 'Hello, World!'#)'()"print '\Hello, World!'\#)"+)x(rper+x:x adbmal(tnirp'()"print 'Hello, World!'#)"+)x(rper+x:x adbmal(tnirp
전반은 한 줄짜리 퀴네 다음에 #
간단한 절반과 전반을 분리하는 주석을 형성하기 위해 a를 붙 입니다.