Untuk tantangan ini, Anda harus membuat program yang mengambil integer x
dan mengeluarkan sumbernya x
berkali-kali.
Aturan
Ini codegolf, tujuannya adalah untuk golf program Anda untuk memiliki jumlah byte paling sedikit
Jika Anda mengirimkan fungsi, fungsi tersebut harus
x
sebagai parameter dan mengembalikan atau mencetak keseluruhan kode Andax
berkali-kali ke STDOUT. Badan fungsi juga tidak boleh kosongJika Anda mengirim lambda, Anda tidak perlu menugaskannya ke variabel
Batasan celah standar berlaku.
Program kosong dilarang
Program Anda hanya bekerja ketika
x
seluruh bilangan bulat lebih besar dari atau sama dengan 0Program Anda mungkin juga tidak langsung membaca bagian mana pun dari kode sumbernya
x
menjadi0
, atau bisa kita membatasi untuk bilangan bulat positif?x
mungkin seluruh bilangan bulat lebih besar dari atau sama dengan 0Jawaban:
Python 2 , 50 byte
Perhatikan tanda koma dan baris baru.
Cobalah online!
sumber
sys.stdout.write("2")
setelahnya.Japt , 14 byte
Cobalah online!
Penjelasan
sumber
RProgN 2 , 8 byte
Quine RProgN2 Loop bekerja sangat baik untuk ini!
Cobalah online!
sumber
Mathematica,
4033 byteTerima kasih kepada lanlock4 untuk menghemat 7 byte!
Fungsi murni mengambil argumen integer nonnegatif.
ToString[#0]
adalah cara Mathematica standar untuk mengakses definisi fungsi murni saat ini;StringRepeat[..., #1]
menyatukan (input) salinan string itu bersama-sama. Sebagai contoh,hasil:
sumber
StringJoin @@ Table[ToString[#0], #1] & [2]
memberi saya kesalahan.Table::itform: Argument 2 at position 2 does not have the correct form for an iterator.
Table[x,5]
akan kembali{x,x,x,x,x}
dalam Mathematica 10.2 dan seterusnya, tetapi dalam Mathematica 10.1 ia memberikan kesalahan seperti itu (diharapkanTable[x,{5}]
).StringJoin @@ Table
denganStringRepeat
.V , 11 byte
Cobalah online!
Ini adalah modifikasi yang sangat sepele dari quine V extensible standar . Kami hanya menggunakan
À
untuk menjalankannya kali arg1 .sumber
dc , 31 byte
Cobalah online!
Penjelasan:
sumber
Python 2, 70 byte
Solusi ini berfungsi jika
x=0
. Ada satu baris baru yang tertinggal.Cobalah online
Python 2, 60 byte (tidak valid)
Ini mengasumsikan itu
x>=1
, tetapi OP mengklarifikasi bahwa itux
bisa nol. Ada satu baris baru yang tertinggal.Cobalah online
sumber
Underload , 12 byte
Cobalah online!
Pengajuan fungsi, karena Underload tidak memiliki cara lain untuk mengambil input. (TIO menunjukkan angka 4 yang diberikan sebagai input, dan menambahkan kode untuk mencetak hasil yang dihasilkan).
Ini hanya konstruktor quine universal
(a(:^)*):^
, plus~^
("buat jumlah salinan sama dengan argumen").sumber
Japt , 14 byte
Cobalah online!
sumber
Jelly , 10 byte
Cobalah online!
Bagaimana itu bekerja
sumber
GNU Make , 49 byte
Make akan bergabung dengan salinan dengan satu spasi, jadi saya harus memasukkan karakter spasi tambahan di akhir dan menghapusnya dengan
strip
di antaranya untuk mengikuti persyaratan dengan setia.sumber
$0
di Make functions tidak sama dengan di shells. Itu nama variabel yang disebut fungsi. Lihat gnu.org/savannah-checkouts/gnu/make/manual/html_node/…call
yang dilakukan adalah mengganti$0
dan$1
dengan parameter aktual - itu adalah interpolasi string sederhana, seperti Python%
.Pyth, 17 byte
Cobalah online!
Ekstensi sepele ke
jN*2]"jN*2]
quine yang cukup terkenal , tetapi mungkin bisa diturunkansumber
Betaload , 203 byte
Baris baru ditambahkan untuk kejelasan:
Saya memberi diri saya batasan yang harus dibaca dari STDIN daripada dari atas tumpukan seperti jawaban Underload biasanya. Saya juga menggunakan input desimal yang tepat, yang merupakan sebagian besar kode.
Penjelasan:
Saya membungkus program dalam quine-wrapper:
(a(:^)*
and):^
. Ini berarti semua kode di dalam pembungkus quine akan memiliki kode sumber program di bagian bawah tumpukan.Untuk mengubah angka menjadi angka Gereja yang normal, saya menggunakan teknik mengganti setiap digit dengan kode untuk dikalikan dengan 10 dan menambahkan angka itu:
Ada banyak pengulangan di sini, jadi mari kita mengemasnya menjadi subprogram yang akan mengambil angka Gereja dari atas tumpukan dan menggunakannya untuk membangun "string angka:"
Saya memasukkan ini ke lingkungan baru sehingga dapat diakses dengan cepat:
Sekarang saya dapat membuat kode pengganti untuk
R
.R
menggunakan elemen atas tumpukan untuk membentuk tabel pencarian untuk mengganti string dari STDIN dengan kode Betaload. Ini berfungsi seperti ini:Namun, kita dapat menggunakan subprogram yang baru saja kita buat untuk menghasilkan segmen kode:
Ketika
R
dijalankan, itu akan mengubah input menjadi serangkaian subprogram yang membangun angka Gereja. Ketika subprogram ini dieksekusi, ia menciptakan angka Gereja pada elemen berikutnya pada stack (0, yang diletakkan sebelumnya) Ini berarti bahwa, setelahR^
, nilai teratas di tumpukan adalah angka Gereja. Kami kemudian^
sekali lagi menerapkan angka Gereja pada elemen terakhir dalam tumpukan (kode sumber program) untuk mendapatkan jawabannya.Fakta menyenangkan: Saya sudah memiliki MD untuk pengiriman ini selama beberapa bulan. Saya menyimpannya setelah salah paham pertanyaan (yang sepertinya tidak bisa saya temukan lagi). Saya harus menggalinya dari Recycle Bin untuk mempostingnya di sini.
sumber
05AB1E , 23 byte
Cobalah online!
sumber
Python 2 , 41 byte
Cobalah online!
Apakah output agak Hacky menggunakan
input
bukanprint
, karenaprint
memiliki bug aneh yang melibatkan mencetak baris baru ketika tidak seharusnya ... . Keluar dengan kesalahan EOF.Penjelasan:
sumber
05AB1E ,
2725 byteCobalah online!
sumber
Pyth, 13 byte
Suite uji
Quine Pyth standar ditambah dua
*
untuk pengulangan.sumber
Perl, 48 byte
\47
adalah pelarian oktal untuk satu kutipan ('
). Ini ditafsirkan di dalam tanda kutip ganda ("
), tetapi tidak di dalam tanda kutip tunggal.sumber
Javascript ES6,
2737 byteEdit
+10 byte jika
f=
harus juga ditampilkansumber
f=
?toString
fungsi.f.toString()
atauf
sama tetapi tidak akan menampilkan nama fungsif
cara itu merujuk ke sumbernya sendiri.CJam ,
2012 byte8 byte disimpan berkat Martin Ender
Cobalah online!
Penjelmaan
sumber
PHP, 194 byte
Cobalah online!
Sama sekali tidak golf, seperti b64 quines cenderung.
sumber
Pergi ,
257254 byteIni menyakitkan saya.
Cobalah online!
sumber
Microscript II, 22 byte:
Microscript II, 20 byte (tetapi secara teknis tidak valid karena mengakses kode sumber dari blok kode):
sumber
C,
144116 bytesumber
Python 3, 69 Bytes
sumber
C # (Visual C # Interactive Compiler) , 115 byte
Cobalah online!
sumber
05AB1E , 17 byte
Modifikasi quine default
0"D34çý"D34çý
dengan menambahkan×?
.Cobalah online.
Penjelasan:
sumber