Rebmu : 9 (без штрафа) или 13 (без штрафа)
Скучное решение Ребму - 9 и несет палиндромное наказание. Я все равно покажу "просто потому что"
rnRVaVRnr
Использование негласного трюка, заключающегося в том, чтобы замечать заглавные буквы, - это отдельные слова, а отсутствие лидирующей заглавной буквы означает, что мы не делаем набор слов, мы производим пять простых слов:
rn rv a vr nr
Что является сокращением для эквивалентного кода (также юридического Rebmu):
return reverse a vr nr
Тот факт, что vr и nr не имеют смысла, не имеет значения, потому что, несмотря на то, что они ни к чему не приписаны, они являются действительными словами. Таким образом, оценщик только запускает return reverse a
... он работает в обе стороны. Но в некотором смысле это аналог скучного мошенничества: код не закомментирован, а мертв и не выполняется по одному пути.
Для чего-то более захватывающего, которое не влечет за собой штраф, как насчет этого 13-символьного решения:
a VR :rv AvrA
Давайте посмотрим, как это обрабатывается на его прямом и обратном путях при расширении. Вперед:
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!
В обратном направлении как 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!
С другой стороны, обратный вариант перезаписывает аббревиатуру для реверса. Но это не палиндром, а всего лишь 13 персонажей. :-)
(Примечание: предполагается, что вы запускаете Rebmu в режиме / args, где a - это аргумент по умолчанию для программы, передаваемой интерпретатору в командной строке, и вы принимаете результат. Если чтение из стандартного ввода на самом деле является обязательным, например, увеличьте с 9 до 11 символов для простого решения: rnRVrArVRnr
и если вам придется печатать на стандартный вывод из программы, а не принимать выходные данные выражения интерпретатора, который бы тоже добавил пару символов.)
-1%#%1-/1
или-1%#%(0
?