Rebmu : 9 (com multa) ou 13 (sem)
A solução Rebmu chata é 9 e tem a penalidade palindrômica. Vou mostrar de qualquer maneira "apenas porque":
rnRVaVRnr
Usando o truque silencioso de perceber letras maiúsculas em maiúsculas são palavras separadas, e a falta de uma maiúscula em maiúsculas significa que não estamos criando uma palavra-chave, produzimos cinco palavras comuns:
rn rv a vr nr
Qual é uma abreviação para o código equivalente (também legal Rebmu):
return reverse a vr nr
O fato de vr e nr não terem sentido não importa, porque apesar de não serem atribuídos a nada, são palavras válidas. Portanto, o avaliador apenas executa o return reverse a
... funciona nos dois sentidos. Mas isso é análogo em um sentido à fraude chata: o código não é comentado, mas está morto e não é executado em um caminho.
Para algo mais emocionante que não incorre na penalidade, que tal esta solução de 13 caracteres:
a VR :rv AvrA
Vamos ver como isso é processado nos caminhos para frente e para trás, quando expandido. Frente:
a ; evaluate a, as it is a string it has no side effects
vr: :reverse ; "set" vr to mean what a "get" of reverse means now
a: vr a ; assign a to calling "vr" on a, effectively reversing
; ^-- result of assign is last expression, the answer!
Para trás como ArvA vr: RV a
:
a: reverse a ; assign A to its reversal
vr: rv: a ; make the abbreviation vr equal to assignment of a to rv
; ^-- result of assign is last expression, the answer!
No lado negativo, a variante reversa substitui a abreviação para reversão. Mas ei, não é um palíndromo e são meros 13 caracteres. :-)
(Nota: Isso pressupõe que você esteja executando o Rebmu no modo / args, em que a é o argumento padrão do programa passado ao intérprete na linha de comando e você aceita o resultado. Se a leitura da entrada padrão é realmente um requisito, as coisas aumente, por exemplo, de 9 a 11 caracteres para a solução simples : rnRVrArVRnr
. E se você precisar imprimir na saída padrão do programa em vez de aceitar a saída de expressão do intérprete que também adicionaria alguns caracteres.)
-1%#%1-/1
ou-1%#%(0
?