Lisp comum (SBCL), 52 bytes
(format`,t"~[Programming Puzzles~;Code~@TGolf~]"0 1)
Impressões Programming Puzzles
(format`,t"~[ProgrammingPuzzles~;Code~@TGolf~]"01)
Impressões Code Golf
Ungolfed:
(format t "~[Programming Puzzles~;Code Golf~]" 0 1)
Explicação:
O truque vem basicamente de como #'formatfunciona o Common Lisp.
No CL, a maioria dos espaços em branco pode ser omitida, desde que não haja ambiguidade sobre onde os tokens começam ou terminam. O primeiro truque foi separar os símbolos formate t. Eu tive que terminar inequivocamente o formatsímbolo sem alterar como tfoi interpretado. Felizmente, `no CL termina o token anterior antes de ser processado e ,cancela o efeito de` (`é usado para implementar o modelo, onde a próxima expressão a seguir é" citada ", mas qualquer subexpressão prefixada com a ,é avaliada e o resultado incluído no modelo, então `, é quase um no-op).
O terceiro argumento para formaté a sequência do modelo. formaté semelhante ao printf em C, mas possui diretivas de formatação muito mais poderosas e usa ~ para indicá-las em vez de%. ~ [e ~] permitem selecionar entre várias opções para impressão, com ~; separando-os. Um argumento adicional é fornecido para formatar - o índice numérico do qual você deseja imprimir. Para garantir que o "" no Code Golf sobreviva, usei a diretiva de tabulação ~ T, usada para inserir espaços em branco, geralmente para alinhar o texto em colunas. ~ @ T é uma variação que apenas insere um determinado número de espaços, assumindo o padrão 1.
Finalmente, existem dois argumentos para formatar 0 e 1. Antes de remover o espaço em branco, o 0 é usado por ~ [~; ~] para selecionar "Quebra-cabeças de Programação" e o argumento de formato extra (o 1) é descartado (eu estou não tenho certeza do quão padrão é o descarte de argumentos de formato extra, mas isso funciona no Steel Bank Common Lisp). Após a remoção do espaço em branco, existe apenas um argumento (01) que seleciona "Code Golf".
Code Golftambém será removido, e o que está dentroProgramming Puzzles.