รหัสข้อมูล + quines
โครงสร้างทั่วไปมากที่สุดสำหรับ quine ดูเหมือนว่า pseudocode นี้:
data = " เวอร์ชันที่หลีกเลี่ยงของโปรแกรมทั้งหมด
ด้วยสตริงนี้แทนที่ด้วยเครื่องหมาย "
โปรแกรม = data.replace (
การแสดงออกที่ประเมินเครื่องหมาย แต่ไม่ได้พูดถึงมัน ,
หนี (ข้อมูล))
โปรแกรมการพิมพ์;
โครงสร้างนี้สามารถใช้ในการเขียนควิน (ค่อนข้างไร้เดียงสา) ในภาษาส่วนใหญ่ อย่างไรก็ตามมันมีแนวโน้มที่จะทำคะแนนได้ไม่ดีนักในระบบการให้คะแนนส่วนใหญ่เพราะคุณต้องเขียนโปรแกรมทั้งหมดสองครั้ง อย่างไรก็ตามโครงสร้างควินส่วนใหญ่สามารถพิจารณาการเพิ่มประสิทธิภาพของสิ่งนี้
มีรายละเอียดปลีกย่อยนี้ ในบางภาษาส่วนที่ยากที่สุดในการดำเนินการนี้คือการเขียนรหัสการยกเว้น ในหลายภาษาการสร้างเครื่องหมายโดยไม่เอ่ยชื่อเป็นเรื่องยาก และในภาษาลึกลับบางอย่างคุณจะต้องประดิษฐ์สตริงตัวอักษรของคุณเอง การดำเนินการทั้งสามนั้นไม่น่าจะทำให้เกิดปัญหามากเกินไป
ตัวอย่างเช่นเราสามารถเขียน Python Quine เพื่อหนีค่าสตริงโดยใช้repr
และใช้x"
สตริงลำดับ 2 ตัวอักษร(ซึ่งสามารถแทน"x\""
ได้เช่นไม่ใช้ลำดับx"
ในการแทนสตริงของสตริงเอง) เป็นเครื่องหมาย:
d='d=x"\nprint(str.replace(d,"x\\"",repr(d)))'
print(str.replace(d,"x\"",repr(d)))