Ваше завдання - якщо ви приймаєте це - написати програму, яка допоможе зрозуміти мою пропозицію щодо мета шляхом підрахунку переможця перевернутого коду-гольфу. змагань, . Звичайно, відповіді на це питання будуть розглядатися як запропоновано, тому ваша програма (якщо вона правильна) зможе розрахувати, чи стане ваша відповідь прийнятою відповіддю.
Правила
- Програма читає файл із кількома рядками наступного формату (див. Приклад нижче): [Мова] TAB [NumberOfCharacters] TAB [LinkToAnswer]
- Ім'я файлу передається як аргумент вашій програмі або файл перенаправляється на стандартний вхід вашої програми. Це ваш вибір, будь ласка, зазначте метод, коли даєте відповідь
- Очікується, що формат введення правильний. Немає необхідності в обробці помилок.
- Кількість символів додатна. Ваша програма повинна обробляти довжину до 65535. 64 к. Має вистачити на всіх :-)
- Програма виводить ті рядки на стандартному виході, які відповідають ідеї мета-пропозиції, тобто
- виграє найкоротший код певної мови програмування (фаза скорочення)
- виграє найдовший код серед усіх мов програмування (фаза сортування)
- у разі жеребкування всі відповіді з однаковою довжиною надрукуються
- Порядок виводу не важливий
- Хоча виграє найдовший код, це не боулінг коду . Ваш код повинен бути якомога коротшим для вашої мови програмування.
- Відповіді на рідкісні мови програмування, які не намагаються скоротити код, заслуговують скорочення, оскільки вони намагаються обійти наміри подібного роду питань. Якщо є лише одна відповідь на певну мову програмування, вона вважатиметься кандидатом-переможцем, тож ви можете почати демонструвати її код.
Приклад вхідного файлу (відокремлений окремими вкладками, якщо має бути проблема з форматуванням):
GolfScript 34 http://short.url/answer/ags
GolfScript 42 http://short.url/answer/gsq
C# 210 http://short.url/answer/cs2
Java 208 http://short.url/answer/jav
C# 208 http://short.url/answer/poi
J 23 http://short.url/answer/jsh
Ruby 67 http://short.url/answer/rub
C# 208 http://short.url/answer/yac
GolfScript 210 http://short.url/answer/210
Очікуваний вихід (порядок не важливий):
C# 208 http://short.url/answer/poi
C# 208 http://short.url/answer/yac
Java 208 http://short.url/answer/jav
Оновлення
Деякі програми покладаються на те, що існує єдиний максимум (наприклад, програма символів C # 210). Отриманий з реальності, хтось також може написати програму GolfScript з 210 символами. Вихід залишився б колишнім. Я додав такий GolfScript у вхід.
Оновлення 2
Як було запропоновано, я переназначив (як і раніше код-гольф), а кінцевий термін - 2014-03-06 (це схоже на довільну дату, але я повернуся до Німеччини з поїздки тоді).
Кінцеві результати
Я вирішив проголосувати наступним чином:
- У відповідях, де кількість символів не може бути підтверджено, отримайте коментар для пояснення кількості.
- Відповіді, які легко зменшити, отримують коментар, пропозицію щодо редагування та переходять до результату із меншим значенням підрахунку. (Сподіваюся, я це бачив заздалегідь).
- Відповіді, які не складаються, отримують зворотну оцінку. (Досить важке завдання, як виявляється).
- Відповіді, які не займаються гольфом, отримують знижку (як це вже описано в правилах).
- Відповіді, які дають очікуваний вихід, отримують репутацію. Через деякі відповіді, які працюють не так, як очікувалося, я використовую 4 різні вхідні файли та перевіряю очікуваний результат.
Нарешті, переможець визначається, надаючи таблицю кваліфікованих відповідей як вхід до моєї довідкової програми (плюс подвійну перевірку результату вручну). Якщо моя власна відповідь була б виграшною, я виключив би її зі списку. У випадку кількох переможців, мені доведеться вибрати лише одного. Тому деякі бонуси можна заробити:
- відповіді, які приймають більше введення, ніж очікувалося (наприклад, поза визначеними діапазонами)
- відповіді, в яких використовується розумна ідея зробити її короткою
Я зробив знімок відповідей 6 березня 2014 року, 19:45 UTC + 1. Аналіз триває. Перевірити всі відповіді важче, ніж очікувалося ...