Цель этой задачи - написать программу, которая удовлетворяет следующим условиям:
Программа не является палиндромной или, по сути, палиндромной (это означает, что можно удалить символы, чтобы сделать их палиндромом, не изменяя эффектов программы).
Программа не является инволюцией (это означает, что она не производит свой исходный ввод при запуске на своем выходе)
Программа обратной полярности является обратной к обычной программе; поэтому, когда обратная программа запускается на выходе обычной программы, она возвращает исходный ввод.
Что означает обратная полярность ? Ну, это отличается между языками.
- Для большинства не связанных с esolangs это означает изменение порядка подопераций в одной операции, изменение порядка аргументов и изменение содержимого жестко закодированных списков / массивов / кортежей / словарей / стеков / очередей / и т. Д. как изменение порядка блоков кода и отдельных строк (но не строк внутри блоков)
Примеры:
Haskell :
x`mod`y
-> y`mod`x
; zipWith ((*3).(+)) [1,2,3] [4,5,6]
->zipWith ((+).(*3)) [6,5,4] [3,2,1]
Python : 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 месяц с момента начала этого конкурса (я случайно наткнулся на него, не зная, что я действительно вовремя). Поскольку это конкурс популярности, победителем (по оползню ) стал Pietu1998-Befunge . Несмотря на то, что нижние компоненты (реверсор текста и обратный алфавит) являются инволюциями, кодер / декодер - нет, так что здесь нет проблем. Бонусные баллы (на мой взгляд) за умение написать «BEFUNGE» по центру. Мне лично понравилась новинка решения Тезея Згарба , потому что язык выглядит круто (если его ограничить). Спасибо всем за участие, и хотя победитель был выбран, я оставляю этот конкурс полностью открытым и приветствую будущие предложения.
()
палиндром? Технически, наоборот )(
.