Metaquine, bir quine olmayan, ancak çıktısı aynı dilde bir program olarak çalıştırıldığında bir quine olan bir programdır.
Bu zorluğun amacı bir metakin yazmaktır. Bu kod golf , bu yüzden en kısa kod kazanır, en erken cevap tiebreaker olarak kullanılır. Bir kinin tanımı nedeniyle sadece tam programların kabul edilebilir olduğunu unutmayın.
Quines Kuralları
Sadece gerçek ayinler kabul edilir. Olduğuna göre,, STDOUT kelimesi kelimesine tüm kaynak kodunu yazdırmak gerekiyor olmadan :
- doğrudan veya dolaylı olarak kaynak kodunuzu okuma.
- beslediğiniz her ifadeyi yalnızca değerlendiren ve basan bir REPL ortamına güvenmek.
- sadece belirli durumlarda kaynağı yazdıran dil özelliklerine güvenmek.
- tüm veya bir kısmını yazmak için hata mesajları veya STDERR kullanarak. (STDOUT geçerli bir quine olduğu ve hata mesajları bunun bir parçası olmadığı sürece STDERR'a bir şeyler yazabilir veya uyarı / ölümcül olmayan hatalar üretebilirsiniz.)
- kaynak kodu yalnızca değişmez değerlerden (dize değişmez değerleri, sayısal değişmez değerler vb.) ve / veya NOP'lardan oluşur.
Bastırmanın geçerliliği uğruna, bastırılamayan çıktılar (telif hakkı bildirimleri, başlatma / kapatma mesajları veya izleyen satır beslemesi gibi) çıktıda yok sayılabilir.
Misal
Salt okunur programları ve yerleşik sorgulamayı yasaklayan kuralı görmezden gelmek, bu Ciddi bir şekilde bir metakin olacaktır:
"Q"
Program "Q"
, örtük olarak çıktıda yazdırılan tek dize değişmezinden oluşur . Output ( Q
) çalıştırıldığında, bir quine ( Q
yerleşik quine fonksiyonudur).
T
1 baytlık kolay bir Pyth cevabıdır.