Tantangan ini mirip dengan Can You Meta Quine?
Quine adalah program yang menghasilkan dirinya sendiri di STDOUT. Tantangan ini adalah untuk menghasilkan program A yang ketika dijalankan menghasilkan program B pada STDOUT. Program B saat dijalankan menghasilkan program A pada STDOUT. Program A dan B harus ditulis dalam (dan dijalankan dalam) bahasa yang sama. Pertanyaan terkait membatasi A! = B. Itu terlihat terlalu mudah. Jadi untuk pertanyaan ini, kami bersikeras bahwa A dan B adalah barang antik, menggunakan aturan berikut:
- Program A dan B tidak boleh menggunakan karakter yang sama, simpan untuk spasi putih dan pemisah pernyataan, dan karakter tanda baca.
- Program A dan B masing-masing harus mengandung setidaknya satu karakter yang bukan spasi putih atau pemisah pernyataan, atau karakter tanda baca.
- Untuk keperluan aturan 1 dan 2, istilah 'spasi putih' tidak termasuk simbol atau urutan simbol yang dengan sendirinya merupakan pernyataan, operator atau simbol yang ditafsirkan (sebagai lawan dari pemisah). Oleh karena itu dalam bahasa Whitespace, tidak ada spasi putih.
- Pemisah pernyataan adalah elemen sintaksis yang secara konvensional digunakan dalam bahasa untuk memisahkan pernyataan. Ini akan termasuk baris baru dalam python, atau titik koma di Jawa, perl atau C.
- Karakter tanda baca adalah karakter ASCII yang bukan spasi putih atau dalam kelas karakter kata POSIX (yaitu garis bawah bukan tanda baca untuk tujuan ini) - yaitu
ispunct()
akan mengembalikan true, dan bukan_
. - Program A ketika dijalankan harus menghasilkan program (Program B) pada STDOUT-nya, yang ketika dijalankan pada gilirannya menghasilkan Program A.
- Program A dan B harus dalam bahasa pemrograman yang sama.
- Bahasa pemrograman yang digunakan harus benar-benar bahasa pemrograman. Kecuali Anda membuat kasus yang baik sebaliknya, saya akan menyarankan itu harus Turing lengkap.
- Setidaknya satu dari A dan B harus menjalankan setidaknya satu pernyataan dalam bahasa tersebut.
Ini adalah kode golf, jadi jawaban tersingkat menang, skor menjadi panjang program A dalam byte (yaitu panjang program B tidak relevan).
A
dan a
dianggap sebagai "karakter" yang berbeda?