Цель этой задачи - написать программу, в которой длина следующих трех будет одинаковой:
- длина исходного кода
- длина вывода выводится на стандартный вывод
- длина предупреждений компилятора, которые он генерирует с (немодированным) компилятором по вашему выбору
Победитель является самым коротким кодом, отвечающим всем трем критериям, и должен иметь длину не менее 1 символа.
Чтобы оживить ситуацию, если вывод содержит менее трех разных символов, он получает штраф в 5 баллов, добавленный к длине каждого (так что +10, если только один тип, +5 для двух).
(Новые строки считаются как 1 или 2 символа, по вашему выбору, но они должны быть согласованы по всем трем критериям. Начальные и конечные пробелы игнорируются во всех строках по всем трем критериям)
В случае равного количества очков, тот, кто печатает наиболее интересный результат (вместо мусора), становится победителем.
Ответы:
Баш, 23 персонажа
Ошибка:
Источник:
Выход:
Brainf * ck, 32 символа
Этот код выполняется около 3 секунд, останавливается и отображает следующую ошибку и вывод.
Ошибка:
Источник:
Выход: (Hexdump)
C, 35 символов
Предупреждение:
Источник и вывод:
PHP, 50 символов
Предупреждение:
Источник и вывод:
источник
C - 48 символов
Примечание: включает заключительный перевод строки (в стиле Unix).
Выход из
gcc a.c
чтения:Выходные данные
a.out
в основном не печатают символы, так что вот как это выглядит после прохождения через hexdump:источник
main(i){i='\z';while(i-->74)putchar(i);}
- но уменьшение размера программы на самом деле контрпродуктивно.JavaScript, 63
66Выход:
В Chrome ошибка такова:
источник
Visual Basic .NET, 185
Ну и дела,
vbc
довольно многословно со своими предупреждениями компиляции. Во всяком случае, код такой:(Обратите внимание, что они должны быть табуляциями, а не пробелами.)
Вывод такой:
И предупреждение компилятора таково:
(На этот раз это фактически четыре пробела, а не табуляция.)
источник
Зш , 20 байт
Проблема, с которой мы здесь сталкиваемся, упоминается в комментарии выше: Zsh печатает имя программы в дополнение к номеру строки перед каждой ошибкой. Решение здесь использует односимвольное имя файла, чтобы злоупотребить этим. Я обернул его в вспомогательный скрипт, чтобы показать, что именно он печатает, и использовать
wc -c
в stderr, stdout и исходном файле.Вывод:
569Xcatcatcatcatcat
после новой строки.Ошибки:
s:[:2: ']' expected
после новой строки.РЕДАКТИРОВАТЬ: альтернативное 20-байтовое решение без ограничения файла:
Попробуйте онлайн!
ЗШ ,
zsh -x
, 10 байт-x
флаг включает xtrace. Это снова требует односимвольного имени файла. Попробуйте онлайн!Зш
zsh -JNTwEDY
, 12 байтКратчайший
-flag
ответ без указания имени файла. Устанавливает больше флагов и$-
печатает их все. Попробуйте онлайн!источник
JavaScript (Firefox 54), 34 байта
Выходы:
И он отправляет это предупреждение на консоль браузера:
Похоже , что это в моей копии Firefox Developer Edition (54.0a2). Это может работать и в других версиях Firefox.
источник
Рубин, 48 символов
Выходы
предупреждает
(файл r.rb, я удалил путь, если вы запустите его из irb, вы получите (irb): 1: предупреждение ...)
В Ruby есть метод warn, но он просто выводит свои аргументы в $ stderr, делая его менее похожим на предупреждение.
источник
Python, 57 байт
Другие переводчики могут отображать предупреждение по-разному. Это было проверено только для работы на TIO.
Попробуйте онлайн
Выход
Предупреждение
Обратите внимание, что начальные пробелы не учитываются при подсчете байтов. Если начальные пробелы не были проигнорированы, это можно сделать за 51 байт.
источник
Javascript (ES6),
3230 байтпечать
в Chrome, а потом кидает
Мое оригинальное 32-байтовое решение:
во-первых, печатает
И выдает ошибку
источник
VBA, 39 байт
Не уверен, что это правильно, учитывая ограничение компилятора, но:
Ввод: (в ближайшем окне)
* Вывод включает в себя непечатные символы, которые плохо воспроизводятся в этом окне.
источник
Perl 6 , 10 байт
Попробуйте онлайн!
Печать
1000000000
в STDOUT иBool::True
STDERR. Оба производят завершающий символ новой строки, но конечный пробел игнорируется в этом вызове.dd
является специфической функцией отладки Rakudoисточник