Гольф таблица лидеров этого вопроса (id = 111735). Ваша программа должна выдать один HTTP или HTTPS-запрос в StackExchange API, проанализировать его и представить пользователю в форме, аналогичной типичному фрагменту таблицы лидеров.
Пример вывода (для вопроса 47338 вместо этого):
Leaderboard
Author Language Size
1. FryAmTheEggman Pyth 19
2. Peter Taylor CJam 24
3. Martin Ender CJam 27
3. Peter Taylor GolfScript 27
5. randomra J 32
5. Optimizer CJam 32
7. Timtech TI-Basic 83/84 40
8. mollmerx k 41
9. Sp3000 ><> 45
10. Sherlock9 Ruby 47
11. Martin Ender Mathematica 49
12. Alex A. Julia 57
13. Sp3000 Python 2 58
14. Zgarb Haskell 68
15. Timtech GML 76
16. Jakube Python 2 79
16. nimi Haskell 79
18. coredump Common Lisp 91
19. Jim Large Ruby 92
Winners by Language
Language User Score
Python 2 Sp3000 58
CJam Peter Taylor 24
Julia Alex A. 57
TI-Basic 83/84 Timtech 40
><> Sp3000 45
Haskell Zgarb 68
GolfScript Peter Taylor 27
Common Lisp coredump 91
Pyth FryAmTheEggman 19
k mollmerx 41
J randomra 32
Ruby Sherlock9 47
Mathematica Martin Ender 49
GML Timtech 76
Обратите внимание на повторяющиеся ранги 3, 5 и 16. Может быть, я даже добавлю специальный неконкурентный ответ только для того, чтобы заставить правильно, не упрощать передачу дубликатов партитуры.
Вывод должен состоять из:
- Линия "Таблица лидеров"
- Строка "\ tAuthor \ tLanguage \ tSize"
- Для каждого ответа - разделенная табуляцией строка ранга и a
.
, затем имя автора ответа, затем имя языка, затем оценка; в порядке возрастания баллов - Строка "Победители по языку"
- Строка "Language \ tUser \ tScore"
- Для каждого используемого языка, имя языка, разделенного табуляцией, автор ответа с низким баллом и оценка
Другими словами, что-то вроде, как будто кто-то копирует и вставляет результат из списка лидеров этого вопроса в текстовый файл (без вещей "\ tLink"). Смотрите также справочную реализацию в Python .
правила
- Нет доступа к сети, кроме одного запроса API к
api.stackexchange.com
- Никакое использование функций API или языков, которые появились после представления этого вопроса.
- Первая строка ответа должна быть совместима с таблицей лидеров. Если это нарушает сценарий таблицы лидеров, прикрепленный к вопросу, то ответ не конкурирует.
- Если при добавлении нового ответа какой-либо существующий ответ искажается, автор старого ответа должен это исправить (или он становится неконкурентным).
- Ссылки на языки, вычеркнутые оценки и т. Д. Должны обрабатываться.
- Ранги должны обрабатываться как во фрагменте (например, равный счет => равный ранг => разрыв в рангах).
Принятым ответом является ответ с наименьшим количеством баллов после достаточного количества бездействия (минимум 1 месяц).
Хорошая идея
- Для тестирования с идентификаторами вопросов 47338 (для обработки дублированных баллов + обработка вычеркнутых баллов) и 17005 (для обработки ссылок). Это увеличивает ответ от Действительный до Хорошего и защищает от перерывов в последующих отправках.
- Включить выходные примеры как для этой, так и для переопределенных версий идентификаторов.
Не обязательно
- Обработка более 100 ответов (ограничение API для одного запроса)
- Обработка переопределений комментариев
- Сортировка раздела "Победители по языку"
- Дискриминация конкурирующих и неправильных ответов
Ответы:
Perl + Mojolicious,
468456469504 байтаИспользование Mojolicious библиотеки.
Ungolfed:
источник
Can't locate ojo.pm in @INC
-> Значит ли это, что это не просто «Perl», но «Perl + Mojolicious»? Разве использование библиотек, не включенных в язык, не считается стандартной лазейкой?Python 3,
860856 байтСлегка играем в гольф, просто чтобы загрузить таблицу лидеров и предоставить шаблон для других игроков в гольф:
Отступ с вкладками. Последнее
print
намеренно не заменяется,p
чтобы создать счет с ответом Mathematica .Ungolfed:
Примечание: он еще не обрабатывает ссылки правильно, поэтому не работает, например, с вопросом 17005 .
источник
Bash + JQ, 399 байт
Обратите внимание, что это почти наверняка может быть улучшено путем оптимизации
jq
логики выражения.Golfed
Пример вывода
источник
error: capture is not defined
Mathematica,
852856 байтИспользует встроенный
JSONTools
пакет. Это не та вещь, для которой Mathematica предназначена для использования ... поэтому я использовал ее!источник
ReplaceAll::reps: <content of the downloaded Mathematica answer> is neither a list of replacement rules nor a valid dispatch table, and so cannot be used for replacing.
, после чего отпечатки{$Failed, $Failed, $Failed, $Failed, $Failed, bytes, $Failed, $Failed}}
.<h1>
)?/tmp/q.json
где есть предварительно загруженный ответ JSON.