Ваша задача - создать программу, которая печатает "Привет, Планета!" именно к консоли. Кажется достаточно простым, верно? Ну, вот в чем фокус. Код должен быть палиндромом, то есть он читается справа налево так же, как слева направо. Стандартные лазейки НЕ допускаются.
code-golf
restricted-source
hello-world
palindrome
lirtosiast
источник
источник
Hello, world!
иHello World!
являются единственными выходами разрешенного привета-мировой программы.Ответы:
/// , 37 байт
источник
TI-BASIC, 67 байт
Это работает, потому что последняя строка программы отображается на экране, в то время как первая строка по существу рассматривается как комментарий.
Каждая строчная буква хранится как 2 байта, а остальные символы - 1 байт. Если бы я изменил правила и напечатал все заглавные буквы, это было бы 41 байт :
источник
e
иi
(числа) для дальнейшего уменьшения количества байтов?Я знаю, что это немного поздно (и немного привередливо), но ...
> <> (Рыба),
474547 байт (на самом деле4345, если я не использовал случайное направление)Эти ответы немного отличаются друг от друга; существует вероятность выполнения любого направления кода .
Итак, под «печатью на консоль» я предположил, что вы имели в виду печать на стандартный вывод. Это выдает ошибку; ошибка выводится в stderr ПОСЛЕ того, как строка выводится на стандартный вывод.
Чтобы доказать, что это сработало в обоих направлениях, я использовал «случайное направление» режиссера «х». Fish - это двумерный язык, поэтому, независимо от того, куда указывает директор, код все равно будет (в конечном итоге) выполняться.
Предполагая, что первый директор указывает вправо, символы загружаются в «стопку» в обратном порядке, затем печатается обратная сторона реверса (или обычный текст).
Предполагая, что оба директора указывают налево, символы снова загружаются в «стек» в обратном порядке (потому что код загружает его в обратном направлении, направление влево), затем происходит обратное обратное (или нормальный текст) печатается.
Если рандомизированный директор указывает вверх или вниз, это не имеет значения - рыба знает, что зацикливается на нижней или нижней части кода, указывая на рандомизатор. Таким образом, он продолжит цикл с рандомизаторами, пока не будет направлен внутрь, к коду для выполнения.
С
!|o|!
обеих сторон бит выполняет следующее:!
пропускает следующую инструкцию (всегда пропускает|
)|
является отражателем; это указывает внутрь назад кo
.o
выводит текущий элемент стека на консоль как символ и удаляет его из стека.Так что, по сути, это трюк «два зеркала в ванной прижаты друг к другу», когда я выхожу, пока не могу больше.
Теперь с помощью кошки смайликов.>o<
перенаправляет вывод внутрь бесконечно, все еще выбрасывая ошибку, но я могу обойтись без использования пропуска в отражении.Оказывается, я был прав с первого раза - вторая попытка не была палиндромной , но она была рефлексивной .
Рыба (без печати на stderr), 64 байта (ов)
Этот чувак немного дольше.
Он имеет ту же функцию рандомизированной стрелки (чтобы доказать, что она работает в обоих направлениях) и не печатает в stderr.
Разница здесь очевидна; Я буквально распечатываю каждый элемент в стеке, а затем заканчиваю выполнение кнопкой
;
.Операция
!;
не завершает выполнение немедленно, так как!
пропускает следующий элемент (в данном случае end exec) и продолжается до тех пор, пока не достигнет другой стороны, которая действует так;!
, что завершает выполнение, прежде чем что-либо пропустить.Он следует той же схеме случайного направления, что и более короткий ответ.
источник
Жевательная резинка , 38 байт
источник
Макароны 0.0.2 , 52 байта
Решение, которое не использует комментарии. (В основном потому, что у макарон нет комментариев ...)
источник
CJam, 41 байт
Спасибо Деннису за три байта.
источник
Foo, 39 байт
Попробуйте онлайн.
источник
!tenalP ,sgniteerG"Greetings, Planet!
сохраняет несколько байтов.JavaScript, 56 байт
Это может работать в любом браузере.
источник
print/tnirp
наalert/trela
, он работает и в других двигателях.alert`Greetings, Planet!`//`!tenalP ,sgniteerG`trela
это 52 байтаGolfScript, 41 байт
Смотри, ма, нет, нет! Попробуйте онлайн в Web GolfScript .
Вторая половина исходного кода хранит строку во второй строке.
будет печатать
источник
C ++, 129 байт
Попытка сделать это без комментариев привела меня в глубокий, темный кошмар препроцессора без выхода, который я мог видеть. Вместо этого я просто стремился сделать это как можно короче.
источник
Python 3, 57 байт
Я исправил проблему с круглыми скобками.
Python 2, 53 байта
Я использовал преимущество отсутствия необходимых скобок и пробелов в Python 2, но не было такой большой разницы.
источник
Желе неконкурентоспособное
25 байт. Этот ответ не является конкурирующим, поскольку задача предшествует созданию желе.
Смотри, нет комментариев! Попробуйте онлайн!
Как это работает
источник
Застрял , 41 байт
Очень похоже на ответ CJam, за исключением Stuck, если выдается команда печати, автоматическая печать стека подавляется.
источник
Mathematica, 52 байта
Также генерирует,
Null "!tenalP ,sgniteerG"[tnirP]
который не печатается.источник
Echo
вv10.3
.Деление ,
4543 байтаСпасибо jimmy23013 за сохранение 2 байта.
Попробуйте онлайн!
R
инициализирует атом, который перемещается вправо."
переключает строковый режим, который просто печатает нужную строку в STDOUT перед нажатием;
, что разрушает атом и завершает программу. Первая половина просто никогда не выполняется.источник
05AB1E , 16 байтов
Код:
Объяснение:
Попробуйте онлайн!
источник
STATA, 52 байта
di "Greetings, Planet!"//"!tenalP ,sgniteerG" id
Немного длиннее (53 байта) версия, которая не использует комментарии:
#d [something]
изменяет разделитель (первоначально возврат каретки),;
если только [что-то] не имеет значенияcr
, поэтому первая команда изменяет разделитель на;
, вторая печатает строку, а третья (которая продолжается до конца), по-видимому, nop, хотя у меня нет идея почему. Я бы догадался, что это вызовет ошибку (нераспознанная команда "! TenalP, sgniteerG" или что-то в этом роде), но, видимо, нет.источник
Japt , 29 байт
Этот язык программирования был создан после того, как вопрос был опубликован, но не был создан для этого вопроса.
Попробуйте онлайн!
Каждый из
?
них является непечатаемым символом Unicode: U + 0082, U + 000F, U + 000F и U + 0082 соответственно.Интересный факт: если бы Japt был опубликован на месяц раньше, он бы законно выиграл этот вызов.
источник
APL, 41 байт
В APL печатается последнее значение, и символ лампы (⍝) начинает комментарий.
источник
GolfScript , 41 байт
Попробуйте онлайн!
источник
TCL, 80 байт
Объяснение: TCL выполняет глобальный процесс,
unknown
когда он сталкивается с вызовом неопределенной команды, первая строка переопределяет этот процесс для простой программы "hello world".Правила цитирования в TCL довольно тонкие, открывающая скобка начинает заключенное в кавычки слово, которое продолжается до следующей подходящей закрывающей скобки, позволяя использовать вложенные слова в кавычках. В противном случае скобки рассматриваются как обычные символы. пять слов:
}"!dlroW olleH"
,stup{
,sgra
,nwonknu
иcorp
. Именованная команда}"!dlroW olleH"
не была определена, поэтомуundefined
вместо нее вызывается proc из первой строки.Аналогичный вопрос был размещен на StackOverflow древности; который с тех пор был закрыт и удален. Я использовал свое решение в качестве примера языка TCL в этом ответе и теперь получаю комментарии с просьбой объяснить, поэтому я воссоздаю свой ответ здесь.
источник
Кег , 41 байт
Попробуйте онлайн!
источник
Витси , 41 байт
Этот язык программирования был создан после того, как вопрос был опубликован, но не был создан для этого вопроса.
В
Z
персонаже выходы все в стеке на STDOUT.Попробуйте онлайн!
источник
Unefunge 98 - 49 байт
Приведенный выше код содержит два непечатаемых символа с кодом 17 (управление устройством 1), представленным
<DC1>
.источник
МСМ , 73 байта
Первая половина непосредственно перед серединой
,
создает обратную строку приветствия, включая дополнительнуюG
справа. Середина,
опускает его, а остальное - каноническая программа «Привет / Приветствие / что угодно». Дополнительные символы на обоих концах необходимы, потому что сообщение содержит,
. Левый исполнен и сбрасываетs
. Оба,
иs
нуждаются в замене для левой точки сцепления, следовательно,G
s.,
На право не выполняется, но строить в конечной строке.источник
CoffeeScript, 53 байта
Похож на Ruby и Lua и почти все варианты здесь.
источник
Рубин, 43 байта
источник
Баш,
5248 байтТакже работает в ksh, zsh, yash, dash. Но не ТШП.
источник
Луа, 52 байта
В терминале Lua это только 44 байта с
источник
=
в терминале, так что там 2 байта. Я думаю, что он существовал в 2015 году, но не уверен.Млечный Путь 1.5.10 ,
434139 байтобъяснение
использование
источник