Relay Quine!
Quine relay of order adalah serangkaian program dalam bahasa yang berbeda sehingga setiap program menghasilkan dan menghasilkan .
Misalnya, relai 2-quine dapat dilihat di sini:
Ruby → Perl 6:
$><<"print ("
p (DATA.read*2).chars.map(&:ord)
$><<".map: &chr).join"
__END__
$><<"print ("
p (DATA.read*2).chars.map(&:ord)
$><<".map: &chr).join"
__END__
menampilkan program Perl 6 ini :
print ([36, 62, 60, 60, 34, 112, 114, 105, 110, 116, 32, 40, 34, 10, 112, 32, 40, 68, 65, 84, 65, 46, 114, 101, 97, 100, 42, 50, 41, 46, 99, 104, 97, 114, 115, 46, 109, 97, 112, 40, 38, 58, 111, 114, 100, 41, 10, 36, 62, 60, 60, 34, 46, 109, 97, 112, 58, 32, 38, 99, 104, 114, 41, 46, 106, 111, 105, 110, 34, 10, 10, 95, 95, 69, 78, 68, 95, 95, 10, 36, 62, 60, 60, 34, 112, 114, 105, 110, 116, 32, 40, 34, 10, 112, 32, 40, 68, 65, 84, 65, 46, 114, 101, 97, 100, 42, 50, 41, 46, 99, 104, 97, 114, 115, 46, 109, 97, 112, 40, 38, 58, 111, 114, 100, 41, 10, 36, 62, 60, 60, 34, 46, 109, 97, 112, 58, 32, 38, 99, 104, 114, 41, 46, 106, 111, 105, 110, 34, 10, 10, 95, 95, 69, 78, 68, 95, 95, 10]
.map: &chr).join
yang pada gilirannya menampilkan program Ruby asli.
Tantangan
Jawaban pertama adalah relai kuine pesanan : quine normal. Itu bisa dalam bahasa apa saja.
Jawaban berikutnya akan memilih bahasa yang berbeda dan membuat urutan quine relay menggunakan kedua bahasa tersebut.
Dan seterusnya. Jawaban -th akan membuat urutan quine relay menggunakan bahasa sebelumnya dan bahasa baru yang berbeda.k k - 1
Kemenangan
Jika, setelah 2 minggu, tidak ada lagi jawaban yang ditambahkan, pemenangnya adalah orang yang menjawab dengan relay quine orde tertinggi.
Lebih banyak aturan
- Tidak ada orang yang dapat menjawab dua kali berturut-turut.
- Tidak ada orang yang dapat menjawab dalam satu jam setelah posting terbaru mereka.
- Bahasa yang berbeda menurut versi dianggap berbeda. Dengan demikian, Python 2 dan Python 3 dapat menjadi bagian dari rantai.
- Bahasa yang berbeda oleh kompiler atau penerjemah tidak dianggap berbeda. Jadi, Python 3 (Cython) dan Python 3 dianggap dapat dipertukarkan tetapi tidak berbeda.
- Setiap jawaban dapat memerintahkan bahasa dengan cara apa pun. Jika jawaban ketiga memiliki urutan Ruby → Perl 6 → JavaScript, Anda tidak dibatasi untuk menambahkan bahasa sampai akhir. Jika Anda menambahkan Java ke dalam campuran, maka Anda dapat menulis JavaScript → Ruby → Java → Perl 6 jika diinginkan.
Format untuk jawaban
n. Bahasa 1 → Bahasa 2 → ... → Bahasa n
Bahasa 1
language 1 code
Bahasa 2
language 2 code
Bahasa 3
language 3 code
...
Bahasa n
language n code
Jangan ragu untuk menambahkan penjelasan di mana saja dalam jawaban Anda.
sumber
Jawaban:
10. Javascript → Foo → brainfuck → Wumpus → Gol> <> → RAD →> <> → Python 2 → Brain-Flak → 4
Sunting: Untuk jawaban selanjutnya, saya telah mempelajari bagaimana Python menghasilkan Brain-Flak sedikit lebih banyak di sini , tetapi saya tidak dapat repot untuk memperbarui tautannya.
Menambahkan Gol> <>. Hanya beberapa saat
rpH
setelah kode Wumpus. Saya juga telah mengoptimalkan kode Brainfuck dan Brain-Flak. Verifikasi!JavaScript (Node.js)
Cobalah online!
Foo
Cobalah online!
brainfuck
Cobalah online!
Wumpus
Cobalah online!
Gol> <>
Cobalah online!
RAD
Cobalah online!
> <>
Cobalah online!
Python 2
Cobalah online!
Brain-Flak
Cobalah online!
4
Cobalah online!
sumber
3. JavaScript → Python 2 → Foo
JavaScript
Klasik Quine JS. Ini adalah program lengkap yang di-output ke konsol:
Cobalah online!
Python 2
Kode Python pada dasarnya mencetak kode JS dengan tanda kutip:
Cobalah online!
Foo
Kode foo adalah kode JS dengan kutipan:
Cobalah online!
sumber
String.fromCharCode(39,34)
untuk menghemat permintaan berulang?String.fromCharCode(39)+String.fromCharCode(34)
untuk menghemat sedikit ;-)1. Foo
Foo
Sebuah sederhana Foo Quine:
Cobalah online!
sumber
2. Python 2 → Foo
saya menggunakan quine python dasar, kemudian menambahkan tanda kutip
python:
Cobalah online!
foo:
Cobalah online!
sumber
5.> <> → JavaScript → brainfuck → Python 2 → Foo
Brainfuck jawaban wajib.
> <>
Cobalah online!
JavaScript
Cobalah online!
brainfuck
Cobalah online!
Python 2
Cobalah online!
Foo
Cobalah online!
sumber
9. JavaScript → Foo → Brainfuck → Wumpus → RAD →> <> → Python 2 → Brain-Flak → 4
Ini sangat menyenangkan.
Tidak tahu mengapa saya memutuskan bahwa 4 harus ditambahkan, tidak tahu mengapa saya dibuat ulang seluruh hal (tentu saja, copy-paste barang di sekitar), tapi saya melakukannya: D
JavaScript
Cobalah online!
Karena output terlalu besar untuk TIO untuk kembali, Berikut tester yang siklus melalui semua bahasa.
Foo
Cobalah online!
brainfuck
Cobalah online!
Wumpus
Cobalah online!
RAD
Cobalah online!
> <>
><>
output baris baru di tengah dengan'a'
begitu fungsi python akan dipisahkan dari sisa kode.Cobalah online!
Python 2
Cobalah online!
Python menghasilkan brain-flak yang agak dioptimalkan, menggunakan kembali item sebelumnya di stack, karena jika tidak, kode brain-flak akan berada di sekitar megabyte ..
Brain-Flak
Cobalah online!
4
Cobalah online!
sumber
4.> <> → JavaScript → Python 2 → Foo
> <>
Cobalah online!
Saya telah menambahkan klasik literal pembungkus tali, menambahkan
'rpp>o<
ke awal, dan mengedit ke bagian tengah juga.JavaScript (Node.js)
Cobalah online!
Saya telah mempersingkat
String.fromCharCode
bagian sesuai komentar pada jawaban terakhir. Saya tahu tantangan ini adalah tidak benar-benar kode-golf, tapi itu membuat saya merasa lebih baik.Python 2
Cobalah online!
Ditambahkan
\'
untuk awal> <> Quine.Foo
Cobalah online!
sumber
6.> <> → JavaScript → brainfuck → Python 2 → Brain-Flak → Foo
Wajib Brain-Flak menjawab.
> <>
Cobalah online!
JavaScript (Node.js)
Cobalah online!
brainfuck
Cobalah online!
Python 2
Cobalah online!
Brain-Flak
Cobalah online!
Saya telah mengecualikan kode karena 41568 byte dan mencapai batas karakter jawabannya. Kode ini mirip dengan kode brainfuck dan dalam format:
Foo
Cobalah online!
sumber
7.> <> → JavaScript → RAD → brainfuck → Python 2 → Brain-Flak → Foo
> <>
Cobalah online!
JavaScript
Cobalah online!
RAD
Cobalah online!
brainfuck
Cobalah online!
Python 2
Cobalah online!
Brain-Flak
Cobalah online!
Foo
Cobalah online!
sumber
8.> <> → Wumpus → JavaScript → RAD → brainfuck → Python 2 → Brain-Flak → Foo
Menambahkan bahasa 2D lain, Wumpus.
> <>
Cobalah online!
Ini sekarang mencetak tambahan
"
sebelum kode Wumpus.Wumpus
Cobalah online!
Mirip dengan
><>
quine, ini membungkus string literal di sekitar kode dan mencetak hanya bagian javascriptJavaScript (Node.js)
Cobalah online!
RAD
Cobalah online!
Saya tidak termasuk bagian yang sangat panjang kode dari rantai, sehingga tidak mengisi jawabannya.
brainfuck
Cobalah online!
Python 2
Cobalah online!
Brain-Flak
Cobalah online!
Foo
Cobalah online!
Ini sebenarnya bagian paling menjengkelkan dari kode. Foo hanya mendukung string literal dari 254 panjang untuk beberapa alasan, jadi saya harus golf sedikit dan berpisah Javascript dari kode 2D untuk tetap pendek. Orang berikutnya mungkin harus memisahkan Javascript.
sumber