3 차 퀴네 챌린지 에 이어 가능한 많은 언어를 사용 하는 Ouroboros 프로그램 을 작성해야 합니다.
즉, 언어 A에서 프로그램 pB를 언어 B로 출력하는 프로그램 pA를 작성하십시오. 프로그램 pB는 프로그램 pC를 언어 C로 출력해야하며, 결국 프로그램이 원래 프로그램 pA를 언어 A로 출력 할 때까지 계속됩니다.
루프의 두 언어는 서로 동일하거나 하위 집합 또는 상위 집합이 될 수 없습니다. 루프의 어떤 프로그램도 동일하지 않을 수 있습니다.
가장 긴 언어 체인이 이깁니다. 소스 코드의 길이는 타이 브레이커입니다.
다음은 Ventero가 제공 한 길이 3의 솔루션 예입니다.
s='print q<puts %%q{s=%r;print s%%s}>';print s%s
파이썬 으로이 펄스 니펫을 생성합니다
print q<puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}>
다음 루비 코드를 생성합니다.
puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}
그런 다음 원래 Python 스 니펫을 인쇄합니다.
s='print q<puts %%q{s=%r;print s%%s}>';print s%s
10
관련 : 50 언어 "Ouroboros" .
—
algorithmshark
매우 유사 (폐쇄) : 다른 언어로 된 프로그램 체인을 만드십시오
—
Ypnypn
@Ypnypn 그것의 복제가 아닌가? 소스 코드 길이의 타이 브레이커로 루프를 최대한 길게 만드는 것입니다. 아무도 전에 4 Ouroborous 길이를 게시 할 기회가 없었습니다 :) 또한 루프는 체인과 다릅니다.
실제로 이것은 이것과 매우 유사 하지만 시퀀스를 반복 할 필요가 없으므로 quine 구성 요소가 없었습니다.
—
Martin Ender