Common Lisp (SBCL), 52 bytes
(format`,t"~[Programming Puzzles~;Code~@TGolf~]"0 1)
Huellas dactilares Programming Puzzles
(format`,t"~[ProgrammingPuzzles~;Code~@TGolf~]"01)
Huellas dactilares Code Golf
Sin golf:
(format t "~[Programming Puzzles~;Code Golf~]" 0 1)
Explicación:
El truco proviene básicamente de cómo #'format
funciona en Common Lisp.
En CL, se puede omitir la mayoría de los espacios en blanco siempre que no haya ambigüedad sobre dónde comienzan o terminan los tokens. El primer truco fue separar los símbolos format
y t
. Tuve que terminar sin ambigüedades el format
símbolo sin cambiar cómo t
se interpretó. Afortunadamente, `en CL finaliza el token anterior antes de que se procese y ,
cancela el efecto de` (`se usa para implementar plantillas, donde la siguiente expresión que sigue se" cita ", pero ,
se evalúa cualquier sub-expresión prefijada con a y el resultado incluido en la plantilla, por lo que `, es casi un no-op).
El tercer argumento format
es la cadena de plantilla. format
es similar a printf en C, pero tiene directivas de formato mucho más potentes y usa ~ para indicarlas en lugar de%. ~ [y ~] le permiten seleccionar entre múltiples opciones de impresión, con ~; separándolos. Se proporciona un argumento adicional para formatear: el índice numérico del que desea imprimir. Para asegurar que el "" en Code Golf sobreviva, utilicé la directiva de tabulación ~ T, que se utiliza para insertar espacios en blanco, generalmente para alinear el texto en columnas. ~ @ T es una variación que solo inserta un número dado de espacios, por defecto a 1.
Finalmente, hay dos argumentos para formatear: 0 y 1. Antes de que se elimine el espacio en blanco, ~ [~; ~] utiliza el 0 para seleccionar "Rompecabezas de programación" y el argumento de formato adicional (el 1) se descarta (estoy no estoy seguro de qué tan estándar es la eliminación de argumentos de formato extra, pero esto funciona en Steel Bank Common Lisp). Después de eliminar el espacio en blanco, solo hay un argumento (01) que selecciona "Code Golf" en su lugar.
Code Golf
también se eliminará el espacio , ¿qué pasa con el que está adentroProgramming Puzzles
?