Как некоторые из вас могут знать, чтобы получить язык от замечательного Денниса, попробуйте онлайн! Привет, Мир! Программа обязательна. Недавно Деннис предложил способ загрузки этих программ с веб-сайта. Вот JSON пастбина символов, используемых в этих программах, по частоте, по состоянию на 27 июля 2017 года.
Некоторым из этих персонажей нужна любовь, поэтому ваша задача - вывести Hello, World! (желательно на языке, участвующем в этом процессе), используя только символы, указанные ниже. Эти персонажи - все персонажи, используемые между 10
и 99
(включительно) временем, вместе с двумя наиболее распространенными персонажами, 0
и , потому что я чувствую себя хорошо.
0 $&*?ABCDEFGIJKLNPQRSTUXYZ\`gjkqwxyz{}÷≤≥=║_
Ваше использование символа должно основываться на его появлении в обычной программе, а не на его кодовой точке или байтовом значении.
Вы должны использовать хотя бы один символ из этого набора, поэтому программы 0 длины недопустимы.
Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Ответы:
SOGL V0.12 ,
897568 байтовПопробуй здесь!
Примечание: всякий раз, когда
q
здесь упоминается или вывод, он не появляется, поскольку всплывающий вывод (любой изoOpP
) недоступен или выводит предшествующий символ новой строки.Пояснение (устарело, изменилось то, что буква «H» печатается с использованием букв алфавита):
Интересный факт: все символы из разрешенных символов находятся в кодовой странице SOGL: D
источник
palenChars.txt
) более подробно здесьPerl 5 , 76 байт
При этом используется функция, которая устарела, но работает локально в моем терминале (как указано, в версии 5.18.2). В более старых версиях Perl
?\w?
- это синоним,/\w/
который дает мне доступ к соответствию регулярному выражению, и у меня достаточно символов для$&
(последнее совпадение) и$`
(текст, предшествующий последнему совпадению). Мне нужно это, чтобы иметь возможность получитьO
. Я генерирую это, создаваяglob
ссылку ($_=\*G
которая, приведенная к скаляру, является чем-то вродеGLOB(0x7ffb728028d0)
). После того$_
, как это?B?
будет , будет соответствоватьB
и$`
будет содержатьGLO
, я могу затем сопоставить с\w$
которым будет хранитьO
в$&
который вставляется в строки, которые я запускаю по строкам - И чтобы создать остальную часть текста, тело строки используется в нижнем регистре\L
.Попробуйте онлайн! - использует
/\w/
вместо того,?\w?
чтобы версия Perl на TIO была слишком новой.Perl 5 , 65 байт
Это немного более обманчиво, поскольку оно опирается на имя файла на TIO (то есть
.code.tio
), так что я не думаю, что это конкурирует, но я был доволен результатом!Попробуйте онлайн!
источник
-p
все в порядке. Хорошая работа, это то, на что я надеялся, когда я спросил об этом :)Одинарный , 7 * 10 182 байта
Унарный - это Brainfuck, преобразованный в двоичный, преобразованный в унарный с использованием
0
в качестве счетчика. По сути, он конденсирует программу Brainfuck в число, и на выходе получается это число0
s. Обычно это очень большие программы.Я не буду вставлять программу здесь, потому что я не знаю, сколько текста позволяет SE, но держу пари, что это меньше, чем это. Вместо этого я вставлю точное число нулей в этот ответ:
Поскольку это довольно дешевый ответ, гарантированно не самый короткий, и я просто скопировал его, я делаю вики-пост.
источник
05AB1E ,
13710695 байтовПопробуйте онлайн!
-31 спасибо @Adnan за указание на то, что я могу использовать базу 108.
- ?? спасибо @Riley за то, что он указал на некоторые вещи неправильно.
Старая версия (другой метод):
05AB1E ,
211186166 байтПопробуйте онлайн!
Ха-ха! И ЗДЕСЬ Я ДУМАЛ, ЧТО ЭСОЛАНГ НЕ ОСТАЕТСЯ НЕДОРОГОНЫМ ШАНСОМ!
Сначала мы получаем 255 в X:
Затем, используя тот же трюк длины, мы нажимаем:
1296995323340359595058728869715
Где мы просто используем
0<space>
вместо трюка длины для нулей.Затем, наконец, мы передаем 255, которые мы сохранили, и конвертируем из 255 в базу 10 :
Все еще игра в гольф, используя другие разрешенные символы, и дублирование, это будет минутой.
источник
Битник , 148 байт
Попробуйте онлайн!
объяснение
Битник основывает инструкцию, выполненную на основе оценки слова «скраббл». Вот сокращенное объяснение:
источник
Moorhens (v2.0),
3423983923866749716 bytesЯ думаю, что это может быть немного в гольфе, Moorhens не простой язык для работы.
объяснение
Moorhens - это язык, основанный на словарных словах. Каждое слово соответствует операции, основанной на его хеше. Пять операций , используемые здесь
xU
,ER
,XI
,KA
, иAA
xU
увеличивает TOSER
помещает новый ноль в стек.XI
уменьшает TOSKA
дублирует TOSAA
скатывает TOS на дноМы нажимаем каждую букву с последовательным применением этих операций.
источник
Glypho , 480 байт
Попробуйте онлайн!
источник
Headsecks , 78 байтов
источник
Двойной JavaScript, 318 байт
Я не уверен, что это разрешено, я не мог сделать это с помощью интерпретатора JavaScript один раз. Это похоже на использование,
eval()
но вместо этого я использую интерпретатор дважды: (Попробуйте в консоли, чтобы вернуть результат обратно)Попробуйте онлайн!
Оценивает:
Попробуйте онлайн!
Который оценивает
Hello, World!
источник
Smallf ** k , 266 байт:
На самом деле, персонажи не имеют никакого значения. Это просто вопрос того, имеет ли каждый символ четную или нечетную кодовую точку. Таким образом, я приложил усилия, чтобы использовать каждый доступный символ (кроме многобайтовых символов) (хотя, поскольку он был рандомизирован, я не пытался это гарантировать).
источник
ord
и 0 для четногоord
), так что вы можете сказать, что это 33,25 байт xD'5'
занимает кодовую точку обычного'A'
, вы не можете использовать'5'
.Пайк ,
133144 байтаПопробуйте онлайн!
Ужасный беспорядок кода, который почти наверняка можно сократить ... Создает его по одному символу за раз.
источник
постоянный ток ,
164162 байтаПопробуйте онлайн!
Там, вероятно, лучше / более интересный подход. Я попытался использовать трюк ASCII + 256, который
dc
имеет, но он также выводит дополнительные символы (даже если они не печатаются), и как только я получил «o», чудесно простое число 111, я столкнулся с проблемой, даже получив значение 111+ (кратное 256), которое учитывается чисто. Итак, вот довольно простое (хотя и по возможности, гольф) решение:In
dc
,z
это команда, которая помещает глубину стека в стек. Это означает, что мы можем использовать это как приращение. Вот как я создаю большинство своих значений ASCII для этой задачи (напечатанных с помощьюP
), которые я нажимаю на именованные стеки с помощьюS
и возвращаюсь в основной стек с помощьюL
.dc
позволяет использовать шестнадцатеричные значения AF, даже если основание ввода десятичное (по умолчанию).К счастью, наша первая буква, 72, кратна 12, поэтому я сохраняю здесь один или два байта, умножая 6 * 12 и печатая немедленно (Моя 164-байтовая версия использовала умножение на ранней стадии, чтобы получить 72 ('H'), который был слегка умным, но пережитком предыдущей попытки и пустой тратой байтов. Теперь я начинаю с увеличения и сохранения пробела, восклицательного знака и запятой, которые вышли из строя и поэтому еще не могут быть напечатаны. Затем я подхожу к букве «H», которую я печатаю немедленно, прежде чем я доберусь до «W», которую я должен сохранить на потом.zzzzzzzC*P
).Я просто печатаю, когда нажимаю «е», затем увеличиваю до «л». Я печатаю два из них и сохраняю один. Когда я делаю это «о», я сначала подумал , что я должен спасти один из тех , на потом, но все вроде в порядке в этой точке. Я печатаю 'o', получаю запятую, пробел и 'W' из ранее, и теперь я снова возвращаюсь к 'o'. Я печатаю это и увеличиваю несколько до наивысшего необходимого значения, «r» (114), которое я печатаю перед загрузкой и печатью «l», которое я спрятал ранее.
Почти сделано! «d» - это значение ASCII 100, которое легко получается умножением на 10 * 10 (меньше байтов, чем при сохранении его ранее и загрузке сейчас). Шестнадцатеричное значение
A
равно 10, как и наш входной радиус, который мы можем получить с помощью командыI
. Умножьте их, напечатайте, а затем загрузите и напечатайте наш восклицательный знак из ранее. Привет, мир!источник