Golf w tabeli wyników tego pytania (id = 111735). Twój program powinien wydać jedno żądanie HTTP lub HTTPS do StackExchange API, przeanalizować je i przedstawić użytkownikowi w formie podobnej do typowego fragmentu tabeli liderów
Przykładowe dane wyjściowe ( zamiast pytania 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
Zwróć uwagę na powtarzające się rangi 3, 5 i 16. Może nawet dodam specjalną, niekonkurującą odpowiedź, aby wymusić prawidłowe, nie uproszczone przekazywanie duplikatów wyników.
Dane wyjściowe powinny składać się z:
- Linia „Tabela liderów”
- Wiersz „\ tAuthor \ tLanguage \ tSize”
- Dla każdej odpowiedzi oddzielony tabulatorami wiersz rangi a
.
, a następnie odpowiedz na nazwisko autora, następnie nazwę języka, a następnie wynik; w porządku rosnącym dla wyniku - Wiersz „Zwycięzcy według języka”
- Wiersz „Language \ tUser \ tScore”
- Dla każdego używanego języka nazwa języka oddzielona tabulatorami, autor odpowiedzi na niższy wynik i wynik
Innymi słowy, coś w stylu, jakby ktoś skopiował i wkleił wynik fragmentu tego pytania do pliku tekstowego (bez elementów „\ tLink”). Zobacz także implementację referencji w języku Python .
Zasady
- Brak dostępu do sieci oprócz jednego żądania API do
api.stackexchange.com
- Brak użycia funkcji API lub języków, które pojawiły się po przesłaniu tego pytania.
- Pierwszy wiersz posta z odpowiedzią powinien być zgodny z tabelą wyników. Jeśli złamie skrypt tabeli liderów dołączony do pytania, odpowiedź nie będzie konkurować.
- Jeśli nowo dodana odpowiedź powoduje, że część istniejącej odpowiedzi jest zepsuta, autor starej odpowiedzi powinien ją naprawić (lub staje się niekonkurencyjny).
- Należy obsługiwać linki do języków, przekreślone wyniki itp.
- Rangami należy się posługiwać jak we fragmencie (np. Równy wynik => równy stopień => luka w szeregach).
Zaakceptowana odpowiedź to odpowiedź o najniższym wyniku po wystarczającym braku aktywności (minimum 1 miesiąc).
Dobry pomysł
- Aby przetestować z identyfikatorami pytań 47338 (dla obsługi duplikatów wyników + obsługa wyników przekreślonych) i 17005 (dla obsługi linków). Uderza to odpowiedź z Ważnego na Dobry i chroni przed przerwami z późniejszych zgłoszeń.
- Aby dołączyć przykłady danych wyjściowych zarówno dla tej, jak i dla przesłoniętych wersji identyfikatora.
Niekoniecznie
- Obsługa ponad 100 odpowiedzi (limit API dla pojedynczego żądania)
- Obsługa komentarzy zastępuje
- Sortowanie sekcji „Zwycięzcy według języka”
- Dyskryminacja konkurencyjnych i niedziałających odpowiedzi
Odpowiedzi:
Perl + Mojolicious,
468456469504 bajtówKorzystanie z biblioteki Mojolicious .
Nie golfowany:
źródło
Can't locate ojo.pm in @INC
-> Czy to oznacza, że nie jest to tylko „Perl”, ale „Perl + Mojolicious”? Czy korzystanie z bibliotek niewłączonych do języka nie jest liczone jako standardowa luka?Python 3,
860856 bajtówLekko grałem w golfa, aby po prostu załadować tabelę wyników i zapewnić szablon innym golfistom:
Wcięte za pomocą zakładek. Ostatni
print
celowo nie jest zastępowany przezp
tworzenie remisu z odpowiedzią Mathematica .Nie golfowany:
Uwaga: nie obsługuje jeszcze poprawnie linków, więc nie działa na przykład w przypadku pytania 17005 .
źródło
Bash + JQ, 399 bajtów
Zauważ, że prawie na pewno można dalej grać w golfa, optymalizując
jq
logikę ekspresji.Grał w golfa
Przykładowe dane wyjściowe
źródło
error: capture is not defined
Mathematica,
852856 bajtówKorzysta z wbudowanego
JSONTools
pakietu. To nie jest coś, do czego Mathematica ma być używana ... więc użyłem go!źródło
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.
, po czym są odciski{$Failed, $Failed, $Failed, $Failed, $Failed, bytes, $Failed, $Failed}}
.<h1>
)?/tmp/q.json
tam, gdzie jest wstępnie pobrana odpowiedź JSON.