Golfen Sie die Rangliste dieser Frage (id = 111735). Ihr Programm sollte eine HTTP- oder HTTPS-Anforderung an die StackExchange-API senden, diese analysieren und dem Benutzer in einer Form präsentieren, die einem typischen Leaderboard-Snippet ähnelt
Beispielausgabe (für die Frage 47338 stattdessen):
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
Beachten Sie die wiederholten Ränge 3, 5 und 16. Vielleicht füge ich sogar eine spezielle nicht konkurrierende Antwort hinzu, um die korrekte, nicht vereinfachte Übergabe der Partiturduplikate zu erzwingen.
Die Ausgabe sollte bestehen aus:
- Die Zeile "Leaderboard"
- Die Zeile "\ tAuthor \ tLanguage \ tSize"
- Für jede Antwort eine durch Tabulatoren getrennte Ranglinie und a
.
, dann Antwort Autorenname, dann Sprachname, dann Punktzahl; in aufsteigender Reihenfolge für die Punktzahl - Die Zeile "Gewinner nach Sprache"
- Die Zeile "Language \ tUser \ tScore"
- Für jede verwendete Sprache, durch Tabulatoren getrennter Sprachname, Autor der Antwort mit niedrigerer Punktzahl und Punktzahl
Mit anderen Worten, so etwas wie das Ergebnis des Leaderboard-Snippets dieser Frage in eine Textdatei (ohne "\ tLink" -Dinge) zu kopieren und einzufügen. Siehe auch die Referenzimplementierung in Python .
Regeln
- Kein Netzwerkzugriff außer einer API-Anfrage an
api.stackexchange.com
- Keine Verwendung von API-Funktionen oder Sprachen, die nach dem Absenden dieser Frage angezeigt wurden.
- Die erste Zeile des Antwortposts sollte Leaderboard-kompatibel sein. Wenn das der Frage beigefügte Leaderboard-Skript beschädigt wird, ist die Antwort nicht konkurrierend.
- Wenn durch eine neu hinzugefügte Antwort eine vorhandene Antwort beschädigt wird, sollte der Autor der alten Antwort diese beheben (oder sie wird nicht mehr konkurrierend).
- Links zu Sprachen, durchgestrichenen Partituren usw. sollten behandelt werden.
- Ränge sollten wie im Snippet behandelt werden (z. B. gleiche Punktzahl => gleicher Rang => Ranglücke).
Akzeptierte Antwort ist die Antwort mit der niedrigsten Punktzahl nach ausreichender Inaktivität (mindestens 1 Monat).
Gute Idee
- Zum Testen mit den Fragen-IDs 47338 (für die Behandlung doppelter Punkte + durchgestrichene Punktebehandlung) und 17005 (für die Behandlung von Links). Dies erhöht die Antwort von "Gültig" auf "Gut" und schützt vor Unterbrechungen durch spätere Einreichungen.
- Aufnahmebeispiele sowohl für diese als auch für überschriebene ID-Versionen.
Nicht nötig
- Bearbeitung von mehr als 100 Antworten (API-Limit für Einzelanforderung)
- Behandlung von Kommentarüberschreibungen
- Sortierung des Abschnitts "Gewinner nach Sprache"
- Diskriminierung konkurrierender und gebrochener Antworten
Antworten:
Perl + Mojolicious,
468456469504 BytesVerwenden der Mojolicious- Bibliothek.
Ungolfed:
quelle
Can't locate ojo.pm in @INC
-> Bedeutet das, dass es nicht nur "Perl" ist, sondern "Perl + Mojolicious"? Zählt die Verwendung von nicht in der Sprache enthaltenen Bibliotheken nicht als Standardlücke?Python 3,
860856 BytesLeichtes Golfen, nur um die Rangliste zu verbessern und eine Vorlage für andere Golfer bereitzustellen:
Mit Tabulatoren eingerückt. Der letzte
print
wird absichtlich nicht durch ersetztp
, um eine Punktzahlbindung mit der Mathematica-Antwort herzustellen .Ungolfed:
Hinweis: Links werden noch nicht korrekt behandelt, daher schlägt dies beispielsweise bei Frage 17005 fehl .
quelle
Bash + JQ, 399 Bytes
Beachten Sie, dass dies mit ziemlicher Sicherheit weiter optimiert werden kann, indem die
jq
Ausdruckslogik optimiert wird .Golf gespielt
Beispielausgabe
quelle
error: capture is not defined
Mathematica,
852856 BytesVerwendet das integrierte
JSONTools
Paket. Dies ist nicht die Art von Dingen, für die Mathematica verwendet werden soll ... also habe ich es verwendet!quelle
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.
, nach denen die Drucke sind{$Failed, $Failed, $Failed, $Failed, $Failed, bytes, $Failed, $Failed}}
.<h1>
) kaputt ?/tmp/q.json
eine vorab heruntergeladene JSON-Antwort ersetzt.