Golf la tabla de clasificación de esta pregunta (id = 111735). Su programa debe emitir una solicitud HTTP o HTTPS a la API de StackExchange, analizarla y presentarla al usuario de forma similar a un fragmento de tabla de clasificación típico
Ejemplo de salida (para la pregunta 47338 en lugar de esto):
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
Tenga en cuenta los rangos repetidos 3, 5 y 16. Quizás incluso agregue una respuesta especial no competitiva solo para forzar la entrega correcta y no simplificada de los duplicados de puntaje.
La salida debe consistir en:
- La línea "Tabla de clasificación"
- La línea "\ tAuthor \ tLanguage \ tSize"
- Para cada respuesta, línea de rango separada por tabulaciones y a
.
, luego responda el nombre del autor, luego el nombre del idioma, luego la puntuación; en orden ascendente por puntaje - La línea "Ganadores por idioma"
- La línea "Idioma \ tUser \ tScore"
- Para cada idioma utilizado, nombre de idioma separado por tabuladores, autor de la respuesta de menor puntaje y el puntaje
En otras palabras, algo así como si uno copia y pega el resultado del fragmento de la tabla de clasificación de esta pregunta en un archivo de texto (sin elementos "\ tLink"). Vea también la implementación de referencia en Python .
Reglas
- Sin acceso a la red, aparte de una solicitud de API para
api.stackexchange.com
- No se utilizan las funciones de API ni los idiomas que aparecieron después de enviar esta pregunta.
- La primera línea de la publicación de respuestas debe ser compatible con la tabla de posiciones. Si rompe el guión de la tabla de clasificación adjunto a la pregunta, la respuesta no es competitiva.
- Si la respuesta recién agregada hace que se rompa alguna respuesta existente, entonces el autor de la respuesta anterior debería corregirla (o deja de ser competitiva).
- Deben manejarse los enlaces a los idiomas, las puntuaciones marcadas, etc.
- Los rangos deben manejarse como en el fragmento (por ejemplo, igual puntaje => igual rango => hueco en los rangos).
La respuesta aceptada es la respuesta con la puntuación más baja después de una cantidad suficiente de inactividad (mínimo 1 mes).
Buena idea
- Para probar con las ID de preguntas 47338 (para manejo de puntaje duplicado + manejo de puntaje marcado) y 17005 (para manejo de enlaces). Esto cambia la respuesta de Válido a Bueno y lo protege de interrupciones de envíos posteriores.
- Para incluir ejemplos de salida tanto para esto como para versiones de ID anuladas.
No es necesario
- Manejo de más de 100 respuestas (límite de API para solicitud única)
- Manejo de anulaciones de comentarios
- Clasificación de la sección "Ganadores por idioma"
- Discriminación de respuestas rotas y rivales.
Respuestas:
Perl + Mojolicious,
468456469504 bytesUsando la biblioteca Mojolicious .
Sin golf:
fuente
Can't locate ojo.pm in @INC
-> ¿Significa que no es solo "Perl", sino "Perl + Mojolicious"? ¿El uso de bibliotecas no incluidas con el idioma cuenta como una laguna estándar?Python 3,
860856 bytesJugó un poco, solo para arrancar la tabla de clasificación y proporcionar alguna plantilla para otros golfistas:
Sangrado con pestañas. El último
print
no se reemplaza deliberadamentep
para crear un empate con la respuesta de Mathematica .Sin golf:
Nota: todavía no maneja los enlaces correctamente, por lo que falla, por ejemplo, para la pregunta 17005 .
fuente
Bash + JQ, 399 bytes
Tenga en cuenta que esto casi con toda seguridad se puede jugar más al optimizar la
jq
lógica de expresión.Golfed
Salida de muestra
fuente
error: capture is not defined
Mathematica,
852856 bytesUtiliza el
JSONTools
paquete incorporado . Este no es el tipo de cosa para la que Mathematica está destinado a ser usado ... ¡así que lo usé!fuente
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.
, después de lo cual son las huellas{$Failed, $Failed, $Failed, $Failed, $Failed, bytes, $Failed, $Failed}}
.<h1>
)?/tmp/q.json
una respuesta JSON pre descargada.