Metaquine adalah program yang bukan quine, tetapi yang outputnya, ketika dijalankan sebagai program dalam bahasa yang sama, adalah quine.
Tujuan dari tantangan ini adalah untuk menulis metaquine. Ini adalah kode-golf , sehingga kode terpendek menang, dengan jawaban paling awal digunakan sebagai tiebreak. Perhatikan bahwa hanya program lengkap yang dapat diterima, karena definisi quine.
Aturan untuk Quines
Hanya quine sejati yang diterima. Artinya, Anda perlu mencetak seluruh kode sumber kata demi kata ke STDOUT, tanpa :
- membaca kode sumber Anda, secara langsung atau tidak langsung.
- mengandalkan lingkungan REPL yang hanya mengevaluasi dan mencetak setiap ekspresi yang Anda berikan.
- mengandalkan fitur bahasa yang hanya mencetak sumber dalam kasus tertentu.
- menggunakan pesan kesalahan atau STDERR untuk menulis semua atau sebagian quine. (Anda dapat menulis sesuatu ke STDERR atau menghasilkan peringatan / kesalahan non-fatal selama STDOUT adalah quine yang valid dan pesan kesalahan bukan bagian dari itu.)
- kode sumber yang murni terdiri dari literal (apakah itu string literal, literal numerik, dll.) dan / atau NOP.
Setiap output yang tidak dapat ditekan (seperti pemberitahuan hak cipta, pesan startup / shutdown, atau feed garis trailing) dapat diabaikan dalam output demi validitas quine.
Contoh
Mengabaikan aturan yang melarang program literal saja dan quining bawaan, ini akan menjadi metaquine di Seriously:
"Q"
Program ini terdiri dari string tunggal literal "Q"
, yang dicetak secara implisit pada output. Ketika output ( Q
) dijalankan, itu adalah quine ( Q
adalah fungsi quine bawaan).
T
adalah jawaban Pyth 1 byte yang mudah.