Kode + kueri data
Struktur paling umum untuk quine terlihat seperti kodesemu ini:
data = " versi lolos dari seluruh program,
dengan string ini diganti dengan spidol "
program = data.replace (
ekspresi yang mengevaluasi ke penanda tetapi tidak menyebutkannya ,
lolos (data))
program cetak;
Struktur ini dapat digunakan untuk menulis quine (cukup naif) di sebagian besar bahasa. Namun, skornya cenderung buruk pada sebagian besar sistem penilaian, karena Anda harus menulis keseluruhan program dua kali. Namun, sebagian besar struktur quine dapat dianggap optimalisasi yang satu ini.
Ada beberapa kehalusan untuk ini. Dalam beberapa bahasa, bagian tersulit dalam melakukan operasi ini adalah menulis kode pelolosan; dalam banyak bahasa, membuat penanda tanpa menyebutkan namanya itu sulit; dan dalam beberapa bahasa esoterik, Anda harus menemukan jenis string literal Anda sendiri. Ketiga operasi cenderung tidak menyebabkan terlalu banyak masalah.
Sebagai contoh, kita dapat menulis quine Python yang keluar dari string menggunakan repr
, dan menggunakan string 2-karakter-urutan x"
(yang direpresentasikan sebagai "x\""
, yaitu tidak menggunakan urutan x"
dalam representasi string dari string itu sendiri) sebagai penanda:
d='d=x"\nprint(str.replace(d,"x\\"",repr(d)))'
print(str.replace(d,"x\"",repr(d)))