Metaquine to program, który nie jest quine, ale którego wyjście, gdy działa jako program w tym samym języku, jest quine.
Celem tego wyzwania jest napisanie metaquine. To jest golf golfowy , więc wygrywa najkrótszy kod, a najwcześniejsza odpowiedź jest używana jako remis. Należy pamiętać, że ze względu na definicję quine dopuszczalne są tylko pełne programy.
Zasady dotyczące Quines
Akceptowane są tylko prawdziwe quines. Oznacza to, że musisz wydrukować cały kod źródłowy dosłownie do STDOUT, bez :
- czytanie kodu źródłowego, bezpośrednio lub pośrednio.
- polegając na środowisku REPL, które po prostu ocenia i drukuje każde podane wyrażenie.
- polegając na funkcjach językowych, które w niektórych przypadkach drukują tylko źródło.
- za pomocą komunikatów o błędach lub STDERR, aby napisać całość lub część quine. (Możesz pisać różne rzeczy do STDERR lub generować ostrzeżenia / niekrytyczne błędy, o ile STDOUT jest poprawnym quine, a komunikaty o błędach nie są jego częścią.)
- kod źródłowy składający się wyłącznie z literałów (niezależnie od tego, czy są to literały łańcuchowe, literały liczbowe itp.) i / lub NOP.
Wszelkie dane wyjściowe, których nie można ukryć (takie jak powiadomienia o prawach autorskich, komunikaty o uruchamianiu / zamykaniu lub końcowe podawanie wiersza) mogą być ignorowane w danych wyjściowych ze względu na ważność quine.
Przykład
Ignorując regułę zabraniającą programom dosłownym i wbudowane quining, byłby to metaquine w Seriously:
"Q"
Program składa się z pojedynczego literału łańcuchowego "Q"
, który jest domyślnie drukowany na wyjściu. Po uruchomieniu output ( Q
) jest to quine ( Q
jest to wbudowana funkcja quine).
T
jest łatwą 1-bajtową odpowiedzią na Pyth.