Dari Quine central :
Tulis quine yang mengambil input nama bahasa dan menampilkan hal yang sama diimplementasikan dalam bahasa input.
Artikel sumber memiliki sesuatu yang dapat Anda gunakan, tetapi seperti yang dikatakan penulis ini jauh lebih sulit. Jelas Anda hanya perlu mendukung serangkaian bahasa yang terbatas. Pilihan ada di tangan Anda, juga bahasa dasar.
Sebagai tantangan kode , skor Anda akan menjadi jumlah bahasa yang didukung oleh program Anda; lebih tinggi lebih baik.
code-challenge
quine
marcog
sumber
sumber
Jawaban:
Rubi
Python
Kedua versi mengambil input pada stdin (
ruby
ataupython
saat ini) dan menghasilkan output ke stdout dalam kedua bahasa.sumber
Turtlèd , Python 2, dan Python 3, 3 bahasa, hanya bersaing untuk mendapatkan hadiah
semua oneliners diikuti oleh baris baru
Turtlèd
Cobalah online!
Python 2
Cobalah online!
Python 3
Cobalah online!
Penjelasan:
Untuk setiap bahasa, saya mengambil quine yang sudah ditulis dan sedikit memodifikasinya.
Turtlèd pertama:
Turtlèd mencakup struktur quine standar. Namun, jika input diakhiri dengan 2 atau 3, ia menambahkan akhir kode python, baik 2 atau 3, itu termasuk keduanya secara terpisah, ke output quine, dan kemudian kembali ke awal dan menambahkan
x='
. Jika tidak, kode sumber dibiarkan dan ditampilkan seperti quine biasaPerhatikan juga, dibutuhkan input dua kali
!!.
, karena sumbernya berisi baris baru yang diumpankan untuk memasukkan baris kosong.Namun, di sepanjang jalan ke awal string, untuk menghindari fakta bahwa string tidak dapat ada
'
di dalamnya, itu mengubah semua'
sumber utama di sepanjang jalan key
. jika itu terjadi, kutipan yang keluar bisa mengganggu, jika mungkinini bergantung pada sebuah trik; Saya tidak dapat menulis
(''y)
,,(pseudocode:if cell is ', write y)
karena dengan begitu Anda tidak dapat dibedakan dari huruf '. jadi, saya menggunakan y dari input "Python"! ini adalah momen eureka nyata bagi saya.kemudian, ada hal-hal seperti python quinelike.
Cara kerja python quinelike:
ini bekerja seperti quine biasa, kecuali itu juga termasuk variabel x
jika memiliki input Python 3, ia berfungsi seperti quine biasa, dan menggunakan format% untuk juga menyertakan sumber untuk Turtlèd.
jika memiliki input Python 2, ia menggantikan
input
dalam string denganraw_input
, dan melakukan hal yang persis sama.jika input Turtlèd, ia menggantikan
y
s di sumber Turtlèd dan mencetaknya.Kedua program python berfungsi sama, dan mengambil input dengan cara yang sama
sumber