Tujuan Anda dalam golf kode ini adalah untuk mengambil dua string, language
dan code
(jika kode golf yang Anda tulis untuk ini adalah multiline, maka variabel ini akan menjadi multiline.) , Dan satu integer bytes
,. Mereka mewakili variabel untuk bahasa pemrograman, jumlah byte yang dibutuhkan, dan kode itu sendiri.
Setelah itu, Anda akan memformatnya seperti pegolf kode melakukannya.
Variabel output adalah string multiline yang disebut answer
.
Anda dapat menggunakan string multiline pada:
Jika Anda mencari Stack Overflow , Anda seharusnya dapat menemukan lebih banyak bahasa pemrograman yang mendukungnya.
Berikut ini adalah template dari penurunan harga output. The code
variabel dalam sebuah blok kode, dan ada header tingkat kedua.
## {language}, {bytes} bytes
{code}
Berikut adalah hasil yang akan terlihat ketika disisipkan ke parser Markdown.
{bahasa}, {byte} byte
{code}
Variabel diasumsikan sudah diisi sebagai bahasa yang Anda kodekan dalam entri kode golf Anda, jumlah byte yang dibutuhkan, dan kode aktual untuknya.
Berikut adalah contoh lain dari output sebagai kode, kali ini dengan variabel yang diisi:
## JavaScript, 1337 bytes
document.getElementById("foo").innerHTML = bar;
Ini adalah versinya sebagai blockquote:
JavaScript, 1337 byte
document.getElementById("foo").innerHTML = bar;
Bytes dapat dihapus dari kode Anda jika Anda menggunakan cara untuk mengatur teks <p>
elemen dalam HTML dengan id result
, seperti kode JavaScript berikut:
document.getElementById("result").innerHTML = answer;
Pastikan juga menyertakan <p id="result"></p>
bagian HTML di JSFiddle agar ini berfungsi.
Mencetak gol
Seperti semua pertanyaan kode-golf , kode yang menggunakan jumlah byte paling sedikit adalah yang terbaik.
sumber
{code}
akan menjadi kode multiline?language
,bytes
dancode
merupakan input atau apakah ini merupakan varian quine di mana hal-hal itu harus cocok dengan kode penyelesaian itu sendiri. (Dan jika demikian, apakah secara langsung atau tidak langsung membaca bahwa kode sumber diperbolehkan, dan apakah built-in quine diperbolehkan.)code
itu sendiri dapat berisi umpan baris?code
tidak akan multiline, atau bukan? Harap tunjukkan bahwa dalam teks tantanganJawaban:
05AB1E , 21 byte
Kode:
Menggunakan pengkodean CP-1252 . Cobalah online! .
sumber
Java, 70 byte
Asumsikan
b[0]
adalah nama bahasa,b[1]
adalah jumlah byte, danb[2]
adalah kode.Membuatnya dapat dikompilasi biaya 9 byte, menghasilkan program 79-byte non-standalone:
Program monolitik setara adalah 103 byte:
Yang monolitik berfungsi dengan argumen baris perintah, dengan asumsi ini sama seperti program non-standalone:
Java (ekspresi lambda),
5648 byteIni adalah
java.util.function.Function<String[], String>
.Tidak satu pun dari program / fungsi ini yang menangani string multiline. Untuk melakukannya, cukup ganti
b[2]
danA[2]
denganb[2].replace("\n","\n ")
danA[2].replace("\n","\n ")
- melakukannya menambah 23 byte.sumber
\t
atau sesuatu untuk mengganti 4 spasi setelah dua baris baru?\t
dan bukan 4 spasi?b->
.V , 24 byte
Perhatikan bahwa ada spasi di akhir.
Program ini membuat asumsi bahwa{code}
tidak akan ada beberapa baris.Op telah mengklarifikasi, "kode" mungkin berupa string multiline. Versi 24 byte ini berfungsi:
Karena ini mengandung karakter yang tidak dapat dicetak, berikut ini adalah versi yang dapat dibaca:
Di mana
<esc>
karakter pelarian literal, mis0x1B
.sumber
Python 3.5,
4033 byte:( -7 bytes berkat beberapa klarifikasi dari Mego )
Fungsi lambda anonim yang mengambil input sebagai argumen posisional dalam format
<function name>(String, Number, String)
dan menghasilkan string multiline.Cobalah secara Online! (Ideone)
sumber
*f
dan menjatuhkantuple
panggilan.TypeError: not enough arguments for format string
setiap kali saya menjalankannya seperti itu.#
dan%
.#
dan lambda diperlukan, atau jadi saya pikir.JavaScript (ES6), 56 byte
Juga, untuk tertawa, inilah jawaban yang memformatnya sendiri untuk saya:
JavaScript (ES6), 68 byte
Cetak hasil
f()
.sumber
(ES6)
. (Mengapa Cᴏɴᴏʀ O'Bʀɪᴇɴ hanya repot untuk mengubah panjangnya?)C #,
4038 byteC # lambda di mana input dan output adalah string.
C #, 59 byte
Dengan penanganan jawaban multiline.
C #, 71 byte
Solusi 38 byte yang mencetak sendiri
Cobalah secara online
sumber
Mathematica, 40 byte
Fungsi anonim. Membawa bahasa, jumlah byte, dan program sebagai input dan mencetak body ke STDOUT.
sumber
Jolf,
2422 byteTidak banyak yang bisa dijelaskan di sini.
¦
berarti input yang diinterpolasi.Coba di sini! Output untuk input dalam tautan adalah:
Input adalah sebagai:
sumber
MATL ,
2827 byte1 byte disimpan berkat saran dari NinjaBearMoneky
Cobalah online!
Blok kode harus dalam satu baris.
Penjelasan
sumber
Gangguan Umum, 57 byte
Juga, untuk bersenang-senang, di sini di bawah ini adalah potongan kode yang mencetak header untuk dirinya sendiri.
Gangguan Umum, 146 byte
sumber
Ruby, 63 byte
Cobalah online: http://codepad.org/EIn0Gw9M
sumber
hashmap , 29 byte.
(Saya menulis posting itu dengan program ini, tetapi saya harus melarikan diri \ n ke \\ n)
Penjelasan:
sumber
CJam ,
2623 byteTerima kasih kepada @NinjaBearMonkey karena telah menghapus 3 byte!
Blok kode harus dalam satu baris.
Cobalah online!
Penjelasan
sumber
'#_Sl',Sl" bytes"N_S4*l
Pyke, 25 byte
Coba di sini!
Atau
Pyke, 0 byte
Coba di sini! - klik tombol salin jawaban;)
EDIT - Ini hanya fitur situs web, itu curang (atau setidaknya saya akan menganggapnya demikian) karena tidak pernah mem-parsing AST dan program web mungkin tidak dianggap sebagai bagian dari bahasa karena tidak banyak berinteraksi dengan bahasa. (meskipun menjalankan interpreter Pyke)
sumber
Perl 5, 35 byte
Program penuh, ini mengambil input sebagai argumen baris perintah dalam urutan terbalik. Ini membutuhkan
-M5.01
, yang gratis.sumber
Emacs Lisp, 97 byte
Juga, karena terkadang sulit untuk menghindari tanda kutip dan yang tidak, contoh penggunaan yang menyalin string ke clipboard. (Tandai wilayah dan gunakan
M-:
)Emacs Lisp, 184 byte
sumber