Вдохновленный этим вопросом о SO , ваша задача состоит в том, чтобы создать программу, которая действительна (по крайней мере) в двух основных версиях выбранного вами языка и дает различный вывод.
правила
- Можно использовать любой язык, имеющий более одной основной версии.
- Для целей этой задачи я бы предложил «основную версию», где изменяется первое число в номере версии.
- PHP 4 и PHP 5 отличаются, PHP 5.3 и PHP 5.4 - нет.
- Однако, поскольку я не знаю схемы управления версиями для всех языков, если вы сможете достаточно хорошо аргументировать свою позицию, я уверен, что сообщество определит, насколько вы были справедливы в определении «основной версии» самостоятельно.
- Для целей этой задачи я бы предложил «основную версию», где изменяется первое число в номере версии.
- Код должен быть скомпилирован и запущен с одинаковыми флагами и каждый раз вводиться
- За исключением изменения версии языка, если это уместно
- Ошибки не считаются выходными данными, а ответы, которые приводят к ошибкам, дисквалифицируются (вместо того, чтобы вывод ошибок просто игнорировался)
- Программа не должна предпринимать никаких действий, кроме той, которая требуется для ее запуска.
- Для каждой данной версии выходные данные всегда должны быть одинаковыми
- Предполагается, что это изменение должно быть следствием изменения спецификации языка, а не спецификации виртуальной машины или метаданных среды.
счет
- код-гольф типа выигрыша по длине, поэтому
+1
для каждого символа / байта -1
для каждого символа разница в длине вывода.- например, выходные данные версии 1
abcde
(5 символов), выходные данные версии 2123abc
(6 символов) =-1
- например, выходные данные версии 1
Другие правила
- Применяются стандартные исключения - никаких внешних программ, веб-запросов и т. Д.
- Ваша программа должна завершиться (в течение 2 секунд)
- Самый низкий балл побеждает.
«Лучше» забил
Сохраняйте свои оригинальные ответы, в интересах справедливости я отмечу победителя на основе оригинальных правил.
Так как мой первоначальный результат в корне нарушен, почему бы не пересчитать / повторить попытку с помощью следующей системы оценок:
- код-гольф типа выигрыша по длине, поэтому
+1
для каждого символа / байта +1
для каждого символа разница в длине выводаabcde
и123456
->+1
-1
для каждого уникального различия символов в выводе (ограничено длиной кратчайшего вывода)abcde
и123456
->-5
12345
и123456
->-1
12345
и123455
->0
- Очки, близкие к нулевой победе
- В случае второго тай-брейка выигрывает простой код-гольф .
zzzz
и aaaa
это мне даст -4
? Это то, что мне кажется.