2010-05-23 10 views
23

Hay muchos paquetes en Hackage, algunos conocidos (como HUnit) y otros menos conocidos (como AspectAG). Me pregunto qué paquete que piensa que es una joya escondida que merece más usuarios. ¿Tal vez una estructura de datos útil, ayudantes para mónadas, redes, pruebas, ...?¿Cuál es tu paquete favorito de "gemas ocultas" en Hackage?

¿Cuál es tu paquete favorito de "gemas ocultas" en Hackage?

+6

Debe ser wiki de la comunidad, creo. – kennytm

+3

Relevantes también podrían ser los paquetes más populares del Q1 2010, en orden, http://www.galois.com/~dons/hackage/april-2010/popularity.csv –

+0

@DonStewart 404 - Enlace muerto. – drozzy

Respuesta

16

Oleg Kiselyov Iteratee. Todavía no entiendo cómo funciona, pero me salvó la vida un par de veces cuando necesitaba hacer algo así como leer 60,000 archivos rápidamente y no tenía tiempo para descubrir por qué los accesos normales a los archivos de Haskell eran muy lento.

También Brian O'Sullivan's Attoparsec, que en mi experiencia tiene un rendimiento mucho mejor que Parsec en cosas como grandes bases de datos de archivos planos.

Y ahora puede combine the two.

Conal Elliott's Vector-space empaqueta muchas funciones de álgebra lineal muy bien, y también me ayudó a sentirme un poco más cómodo con las familias tipográficas.

Statistics (de nuevo por O'Sullivan) ha sido útil porque prefiero trabajar en Haskell que en R.

HXT y Criterion no son "joyas ocultas", pero en mi opinión que merecen ser más ampliamente utilizado.

12

Vector - matrices rápidas hechas fácil (no me gusta Data.Array). Si solo pudiera votar por uno, sería en este momento.

Lazy Small Check (ver también paper) para realizar pruebas exhaustivas.

Cereal - todas las estructuras de datos comunes deben tener instancias Binary y Serialize. Confíe en el compilador para eliminar el código muerto.

meldable-heap - No he tenido la oportunidad de usarlo, pero este es un ejemplo de cómo se debe desarrollar el software.

Chart - Me ha sido útil a la hora de crear gráficos para mis trabajos y presentaciones.

Atom - Me gustaría tener una excusa para usarla, pero todavía no la he recibido.

8

Algunos, bibliotecas pragmáticos subestimados que uso con bastante frecuencia:

+0

Sé que esta publicación es antigua, pero la biblioteca de descarga de enlaces es GRANDE, ¡odio escribir el tedioso código 'Network.HTTP' solo para descargar el cuerpo de una página web! – djhworld

3

que prevenir a que esta es la auto-promoción, pero creo que mi paquete merece más usuarios que yo solo :)

Así, timeplot es una herramienta para trazar series de tiempo a partir de registros. Tiene bastantes características, vea la extensa tutorial (muchas fotos adentro).

Por ejemplo, puede usarlo para ver el efecto de un proceso de fondo pesado en 25%, 50% y 90% de los cuantiles de sus tiempos de respuesta; o mira la cantidad de usuarios en línea durante todo el día.

Está diseñado "de la manera Unix": toma un registro arbitrario y escribe un script awk o perl directo rápido y sucio que lo transforma en entrada para el programa (que consiste en "eventos": impulsos de valores discretos , impulsos de valor continuo y impulsos de inicio/parada).

Ha sido bastante útil para mí al analizar datos de registro, especialmente para diagnosticar ciertos problemas de rendimiento "infraestructural": Veo gráficos de la actividad del sistema y veo lo que parece no ser como debería ser.

3

Me gusta interlude - para cuando esos malditos mensajes 'head: undefined' simplemente no desaparecerán!

4

me gusta la biblioteca don't:

main = don't $ do 
    name <- getLine 
    putStrLn $ "hello " ++ name 
+0

¿Es esto solo una broma? –

+1

Sí, fue una broma, pero no es del todo inútil ... es como comentar un bloque de código. – Caleb

Cuestiones relacionadas