Common Lisp (SBCL), 52 octets
(format`,t"~[Programming Puzzles~;Code~@TGolf~]"0 1)
Impressions Programming Puzzles
(format`,t"~[ProgrammingPuzzles~;Code~@TGolf~]"01)
Impressions Code Golf
Ungolfed:
(format t "~[Programming Puzzles~;Code Golf~]" 0 1)
Explication
Le truc vient essentiellement de la façon dont #'format
fonctionne dans Common Lisp.
Dans CL, la plupart des espaces peuvent être omis à condition qu'il n'y ait aucune ambiguïté quant au début ou à la fin des jetons. La première astuce consistait à séparer les symboles format
et t
. Je devais terminer le format
symbole sans ambiguïté sans changer l' t
interprétation. Heureusement, `dans CL termine le jeton précédent avant qu’il ne soit traité et ,
annule l’effet de` (`est utilisé pour implémenter un modèle, où la prochaine expression qui le suit est" citée ", mais toute sous-expression précédée de a ,
est évaluée et le résultat inclus dans le modèle, donc `, est presque inexistant).
Le troisième argument format
est la chaîne de modèle. format
est similaire à printf en C, mais a des directives de formatage beaucoup plus puissantes et utilise ~ pour les indiquer au lieu de%. ~ [et ~] vous permettent de choisir entre plusieurs options d'impression, avec ~; en les séparant. Un argument supplémentaire est fourni pour formater - l'index numérique de celui que vous voulez imprimer. Afin de garantir la survie du "" dans Code Golf, j'ai utilisé la directive de tabulation ~ T, utilisée pour insérer des espaces, généralement pour aligner le texte en colonnes. ~ @ T est une variation qui insère simplement un nombre d'espaces donné, par défaut à 1.
Enfin, il existe deux arguments pour les formats 0 et 1. Avant de supprimer les espaces, le 0 est utilisé par ~ [~; ~] pour sélectionner "Programmation Puzzles" et l'argument de format supplémentaire (le 1) est supprimé (je suis je ne sais pas à quel point il est normal de supprimer des arguments de format supplémentaires, mais cela fonctionne sous Steel Bank Common Lisp) Une fois les espaces supprimés, un seul argument (01) permet de sélectionner "Code Golf".
Code Golf
sera-t-il également supprimé, qu’en est-il de celui qui se trouve dansProgramming Puzzles
.