Dengan menggunakan dua bahasa pilihan Anda, tulis “ quine mutual” terkecil yang Anda bisa.
Yaitu, tuliskan program P dalam bahasa A yang mengeluarkan kode sumber untuk program Q dalam bahasa B, sehingga keluaran program Q identik dengan kode sumber untuk P.
File kosong tidak masuk hitungan, juga tidak "membaca file sumber dan mencetaknya" program gaya.
Sunting: Jawaban dengan P = Q tidak lagi dihitung.
1
adalah quine dalam beberapa bahasa. Jadi bisa dibilang ini adalah program J yang mencetak program Golfscript yang mencetak ...... dan seterusnya.Jawaban:
> <> (Ikan) dan Python - 26 karakter
Menghasilkan Python ini
sumber
"
dan'
mengaktifkan penguraian string, sehingga seluruh program hanya didorong ke tumpukan dan tidak pernah ditampilkan."
memungkinkan penguraian string. Bunyinya. Seluruh program dan kemudian membungkus kembali ke. Pertama"
dan menjalankan program dengan sendirinya di tumpukanprint \00gr00g:a9*2+$' tnirp'>o<
setelah waktu habis. Saya cukup yakin ini karenag
menyalin isi sel yang sebenarnya, tetapio
mengeluarkan versi ASCII dari karakter, dan"
bukan kode karakter ASCII yang valid. ideone.com/kaM0r"
adalah ASCII 34. Penerjemah Anda harus tidak aktif.Python dan Ruby, 39 karakter
Cuplikan Python ini
menghasilkan potongan Ruby ini
yang kemudian menghasilkan potongan Python inital lagi:
Perhatikan bahwa ini mirip dengan jawaban JB .
sumber
C dan Perl, 73
Ini C:
... menampilkan Perl berikut:
... yang mengembalikan C kembali.
sumber
main(s){printf(s="print q<main(s){printf(s=%c%s%1$c,34,s);}>",34,s);}
C dan C ++, 123 karakter
C ini (dapat dikompilasi dengan gcc v4.3.4):
menampilkan ini (identik) C ++ (dapat dikompilasi dengan g ++ 4.3.4, satu peringatan):
Ini sesuai aturan seperti yang diposting. : P Dan, seperti Ventero, ini didasarkan pada jawaban JB .
sumber
Java ke Python - 219
Jawa:
Python:
Manfaatkan fakta bahwa python memungkinkan
'
untuk string; ini membuatnya lebih mudah untuk menulis sumber program java di program python.sumber
Python + Piet one-liners: 417 karakter +
73917107 mengeksekusi kodeSkrip Python ini menghasilkan gambar 7393 x 2; blok 2x2 paling kanan yang merupakan "sentinel" yang mengakhiri program; jadi saya tidak menghitungnya; dan baris kedua berwarna putih. Saya mungkin bisa menurunkan kode piet lebih jauh dengan menggunakan rantai penjumlahan / pengurangan / perkalian alih-alih algoritma biner yang naif ... tapi saya tidak ingin memberikan solusi untuk puzzle masa depan.
Saya tidak akan memposting gambar di sini, karena dimensinya yang konyol. Jika Anda ingin melihatnya, jalankan kode python, dan pipa keluaran ke file .ppm. Kemudian, konversikan .ppm ke .gif, dan jalankan output di Rapapaing . (secara bergantian, gunakan juru bahasa non-web Piet yang groks .ppm)
sunting: golf piet sedikit dengan mengurangi berat nama variabel Hamming.
pre-quine yang kurang golf :
Ini adalah versi sebelumnya, sebelum saya menyadari bahwa saya bisa membuatnya satu-liner. Sedikit lebih mudah dimengerti. Fungsi P menerjemahkan set instruksi khusus ke dalam Piet; dan fungsi p mengambil integer dan menghasilkan urutan instruksi untuk membuat integer itu di stack. Saya hanya menggunakan instruksi
=,+,:,|
, jadi ini mungkin bisa dibuat lebih efisien ... tapi saya agak suka memiliki kompiler Piet fullblown (macam) di sumbernya.sumber
/Brainf..k/, 6988 byte
Brainfuck
Cobalah online!
Brain-Flak
Cobalah online!
Brain-Flak mungkin kehabisan waktu di TIO.
Penjelasan
Segera akan datang.
sumber
Explanation coming soon
->Jan 27
Ruby dan Python (393 + 413 = 806 karakter)
Sedikit perubahan jawaban saya ini. Pasti bisa dikurangi karena saya baru saja mengkodekan input tanpa optimasi.
Ruby (393 karakter)
Python (413 karakter)
sumber
Python 2 hingga Befunge 98,
9478Sekali lagi, gunakan dua cara Python untuk membuat string:
Python:
Jalanan 98:
Program python memformat string untuk memasukkan dirinya sendiri dan karakter untuk kutipan tunggal dan ganda.
Program Befunge bekerja seperti ini:
<
: pindah ke kiri, dan lilitkan. Jadi sekarang kita menjalankan perintah dari kanan ke kiri"
: buat sedemikian rupa sehingga setiap karakter yang kita temui didorong ke tumpukan sampai kita menemukan yang lain"
, jadi kita dorong:Yang sebenarnya hanya program python, terbalik karena cara Befunge mencetak (yang merupakan pop + print loop)
'M
: dorongM
ke tumpukan.M
juga nomor 77, yang merupakan kurang dari jumlah karakter yang didorong ke tumpukan oleh"
s.k
: pop nilai teratas dari stack (M
) dan lakukan operasi berikutnya berkali-kali, plus satu.,
: pop nilai teratas dari tumpukan dan cetak char.@
: akhiri program.sumber
Underload dan Betaload , 16 byte (tidak bersaing)
Underload:
Betaload:
Betaload adalah superset dari Underload, jadi ini bisa menjadi dua jawaban Underload.
Ini non-bersaing karena Betaload dibuat setelah tantangan ini diposting.
sumber
Clipper dan C (111 + 108 = 219 karakter)
Clipper (111)
C (108)
Ini agak sulit karena:
?'foo'
:-)?
dan'
s.#include <stdio.h>
, jadi itu memberi peringatan kompilersumber
PRINT
perintah BASIC juga bisa disingkat?
:-)Python dan ~ - ~! - 77 dan 81 = 158
Kode Python ini:
output ini ~ - ~! kode:
Pasti bisa banyak ditingkatkan, dan mengadopsi sejumlah besar dari jawaban lainnya.
sumber
Javascript dan Windows .bat (71 dan 81)
dan
sumber