Ребму : 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
?