Мета цього завдання - написати програму, яка задовольняє наступним умовам:
Програма не є паліндромною, або по суті паліндромною (це означає, що можна видалити символи, щоб зробити її паліндром без зміни ефектів програми).
Програма не є інволюцією (це означає, що вона не виробляє свого початкового вводу при запуску на своєму виході)
Програма зворотної полярності - обернена нормальна програма; тому коли повернена програма запускається на виході звичайної програми, вона повертає початковий вхід.
Що означає зворотна полярність ? Ну, це відрізняється між мовами.
- Для більшості не-есолангів це означає повернути порядок суб-операцій в одній операції, змінити порядок аргументів і змінити вміст твердо кодованих списків / масивів / кортежів / словників / стеків / черг / тощо, а також як зміна порядку блоків коду та автономних рядків (але не рядків у блоках)
Приклади:
Haskell :
x`mod`y
-> y`mod`x
; zipWith ((*3).(+)) [1,2,3] [4,5,6]
->zipWith ((+).(*3)) [6,5,4] [3,2,1]
Пітон : 2**3
-> 3**2
; for x,y in [(1,2),(3,4),(5,6)]
->for y,x in [(6,5),(4,3),(2,1)]
Для мов, які мають 1-символьні функції (наприклад, Pyth, APL), просто переверніть рядок інструкцій
Для одновимірних езолангів, таких як BF, перевірте інструкції або поміняйте полярність; полярність свопи
[]
->{}
,+
->-
,-
->+
,>
-><
,<
->>
,.
->,
і,
->.
(але не обидва)Для двовимірних езолангів, таких як Befunge, ви можете або виконати віддзеркалення по осях x або y, або по діагоналі, повернути на 180 градусів або зробити комбінацію відбиття та обертання
Допускаються коммутаційні операції, але паліндромні - не: 2*x
добре, але x+x
погано. Визначення зворотності полярності є досить розкутим, але використовуйте судження щодо того, що має сенс; об'єкт не в пошуку найрозумнішої лазівки, а в пошуку найрозумнішого рішення.
Це конкурс на популярність, тому може бути популярною дуже розумна лазівка, але постарайтеся дотримуватися духу цього виклику. Переможець буде оголошений, коли буде щонайменше 10 рішень з принаймні 1 нагородою, і є щонайменше одне рішення з більшою кількістю подій, ніж подання з принаймні 1 нагородою; або через 1 місяць, залежно від того, що відбудеться раніше. Це мій перший виклик, тому постарайтеся бути справедливим та дайте мені конструктивні відгуки, але також дайте мені знати, чи це необгрунтований виклик, чи є якимось чином категоризованим чи неоднозначним. Якщо у вас є питання щодо мови, яка не вписується в жоден із голубів, які я тут виклав, прокоментуйте, і я схиляюся до волі громади, якщо є сильний резонанс на певне уточнення чи зміну правил.
ОНОВЛЕННЯ
Минуло рівно 1 місяць з початку цього конкурсу (я випадково випадково перевірив його, не знаючи, що я насправді вчасно). Оскільки це змагання за популярність, переможцем (зсувом) став Pietu1998-Befunge . Незважаючи на те, що нижні компоненти (текстовий реверс та алфавіт назад) є обома інволюціями, кодер / декодер - це не так, що тут немає жодної проблеми. Бонусні бали (на мій погляд) за те, що вдалося написати "ПОВЕРНЕННЯ" в середині. Мені особисто сподобалась новизна рішення Тезея Згарба , адже мова виглядає круто (якщо обмежено). Дякую всім за участь, і, хоча переможця було визначено, я залишаю цей конкурс повністю відкритим і вітаю майбутні подання.
()
паліндромний? Технічно навпаки )(
.