Common Lisp (SBCL), 52 byte
(format`,t"~[Programming Puzzles~;Code~@TGolf~]"0 1)
Cetakan Programming Puzzles
(format`,t"~[ProgrammingPuzzles~;Code~@TGolf~]"01)
Cetakan Code Golf
Tidak Terkumpul:
(format t "~[Programming Puzzles~;Code Golf~]" 0 1)
Penjelasan:
Caranya pada dasarnya berasal dari cara #'formatkerjanya di Common Lisp.
Dalam CL, sebagian besar spasi putih dapat dihilangkan asalkan tidak ada ambiguitas tentang di mana token mulai atau berakhir. Trik pertama adalah memisahkan simbol formatdan t. Saya harus mengakhiri formatsimbol itu tanpa mengubah cara tmenafsirkannya. Untungnya, `di CL mengakhiri token sebelumnya sebelum diproses, dan ,membatalkan efek` (`digunakan untuk mengimplementasikan templating, di mana ekspresi selanjutnya yang mengikuti" dikutip ", tetapi setiap sub-ekspresi yang diawali dengan a ,dievaluasi dan hasilnya termasuk dalam templat, jadi `, hampir tidak ada op).
Argumen ketiga formatadalah string template. formatmirip dengan printf dalam C, tetapi memiliki arahan pemformatan yang lebih kuat dan gunakan ~ untuk menunjukkannya alih-alih%. ~ [dan ~] memungkinkan Anda memilih di antara beberapa opsi untuk dicetak, dengan ~; memisahkan mereka. Argumen tambahan disediakan untuk memformat- indeks numerik yang ingin Anda cetak. Untuk memastikan bahwa "" dalam Code Golf bertahan, saya menggunakan arahan tabulasi ~ T, yang digunakan untuk menyisipkan spasi putih, umumnya untuk menyelaraskan teks ke dalam kolom. ~ @ T adalah variasi yang hanya menyisipkan jumlah ruang tertentu, default ke 1.
Akhirnya, ada dua argumen untuk format- 0 dan 1. Sebelum spasi putih dihapus, 0 digunakan oleh ~ [~; ~] untuk memilih "Programming Puzzles" dan argumen format tambahan (angka 1) dihapus (saya tidak yakin bagaimana standar menjatuhkan argumen format ekstra, tapi ini berfungsi pada Steel Bank Common Lisp). Setelah spasi dihapus, hanya ada satu argumen (01) yang memilih "Code Golf" sebagai gantinya.
Code Golfjuga akan dihapus, bagaimana dengan yang ada diProgramming Puzzles.