Ortak Lisp (SBCL), 52 bayt
(format`,t"~[Programming Puzzles~;Code~@TGolf~]"0 1)
Baskılar Programming Puzzles
(format`,t"~[ProgrammingPuzzles~;Code~@TGolf~]"01)
Baskılar Code Golf
Ungolfed:
(format t "~[Programming Puzzles~;Code Golf~]" 0 1)
Açıklama:
Püf noktası temel #'format
olarak Common Lisp'te nasıl çalıştığından geliyor .
CL'de, belirteçlerin nerede başladığı veya bittiği konusunda belirsizlik olmaması koşuluyla çoğu boşluk atlanabilir. İlk numara format
ve t
sembolleri ayırmaktı . format
Nasıl t
yorumlandığını değiştirmeden sembolü açıkça sonlandırmam gerekiyordu . Neyse ki, CL'de işlemden önce önceki tokeni sonlandırır ve ,
`(` etkisini iptal eder, ardından bir sonraki ifadenin "kote" edildiği, ancak bir ön ek ile ifade edilen herhangi bir alt ifadenin ,
değerlendirildiği ve şablonda yer alan sonuç, yani `neredeyse hiçbir işlem değil.
Üçüncü argüman format
şablon dizesidir. format
C'deki printf'e benzer, ancak çok daha güçlü biçimlendirme yönergelerine sahiptir ve% yerine bunları belirtmek için ~ kullanın. ~ [ve ~], yazdırma için çoklu seçenekler arasında seçim yapmanızı sağlar; onları ayırmak. Yazdırmak istediğiniz sayısal dizini biçimlendirmek için ek bir argüman sağlanmıştır. Code Golf'teki "" 'nin hayatta kalmasını sağlamak için, genellikle metni sütunlara hizalamak için boşluk eklemek için kullanılan tablolama direktifini ~ T kullandım. ~ @ T, yalnızca 1'e ayarlanan, belirli sayıda boşluk ekleyen bir varyasyondur.
Son olarak, 0 ve 1 formatlarında iki argüman vardır. Boşluk kaldırılmadan önce, 0 "[Programlama Bulmacaları" nı seçmek için ~ [~; ~] tarafından kullanılır ve ekstra format argümanı (1) bırakılır (Ben standart bırakma ekstra format argümanlarının ne kadar olduğundan emin değiller, ancak bu, Steel Bank Common Lisp'te çalışıyor. Boşluk kaldırıldıktan sonra, bunun yerine "Code Golf" u seçen yalnızca bir argüman (01) vardır.
Code Golf
da kaldırılacak mıProgramming Puzzles
?