2010-05-23 5 views
23

Es gibt viele Pakete auf Hackage, einige gut bekannt (wie HUnit) und einige weniger bekannt (wie AspectAG). Ich frage mich, welches Paket Sie denke, ist ein verstecktes Juwel, das mehr Benutzer verdient. Vielleicht eine nützliche Datenstruktur, Helfer für Monaden, Vernetzung, Test, ...?Welches ist dein liebstes "verstecktes Juwel" -Paket auf Hackage?

Welches ist dein liebstes "verstecktes Juwel" -Paket auf Hackage?

+6

Sollte Community Wiki werden, denke ich. – kennytm

+3

Relevant könnte auch die 2010 Q1 beliebtesten Pakete in der Reihenfolge sein, http://www.galois.com/~dons/hackage/april-2010/popularity.csv –

+0

@DonStewart 404 - Link tot. – drozzy

Antwort

16

Oleg Kiselyov Iteratee. Ich verstehe immer noch nicht wirklich, wie es funktioniert, aber es hat mein Leben ein paar Mal gerettet, als ich 60.000 Dateien schnell lesen musste und keine Zeit hatte herauszufinden, warum die normalen Haskell-Dateizugriffsansätze waren so langsam.

Auch Brian O'Sullivans Attoparsec, die meiner Erfahrung nach viel besser als Parsec auf Dinge wie große Flat-File-Datenbanken durchführen.

Und jetzt können Sie combine the two.

Conal Elliotts Vector-space Pakete sehr viele lineare Algebra Funktionen sehr schön, und brachte mich auch ein wenig näher mit Typ Familien fühlen.

Statistics (wieder von O'Sullivan) hat praktisch, weil ich in Haskell arbeiten würde es vorziehen, als in R.

HXT und Criterion sind keine „verborgenen Schätze“, aber meiner Meinung nach die sie verdienen häufiger verwendet werden.

12

Vector - schnelle Arrays leicht gemacht (Ich mag Data.Array nicht). Wenn ich nur für eins stimmen könnte, wäre das jetzt richtig.

Lazy Small Check (siehe auch die paper) für erschöpfende Tests.

Cereal - alle gängigen Datenstrukturen sollten Binär- und Serialize-Instanzen haben. Vertraue dem Compiler, um den toten Code zu löschen.

meldable-heap - Habe es noch nicht benutzt, aber das ist ein Beispiel dafür, wie Software entwickelt werden sollte!

Chart - Es war nützlich für mich beim Erstellen von Diagrammen für meine Arbeit und Präsentationen.

Atom - Ich hätte gerne eine Ausrede, es zu benutzen, aber ich habe noch keine bekommen.

8

Einige underappreciated, pragmatische Bibliotheken ich ziemlich oft:

+0

Ich weiß, dass dieser Beitrag alt ist, aber die Download-Curl-Bibliothek ist GROSSARTIG, ich hasse es, langweiligen 'Network.HTTP'-Code zu schreiben, nur um den Körper einer Webseite herunterzuladen! – djhworld

3

ich warne, dass diese Eigenwerbung, aber ich denke, dass mein Paket mehr Benutzer verdient als nur ich selbst :)

So, timeplot ist ein Werkzeug zum Zeichnen von Zeitreihen aus Protokollen. Es hat einige Features, siehe die umfangreiche tutorial (viele Bilder im Inneren).

Zum Beispiel können Sie den Effekt eines schwergewichtigen Hintergrundprozesses auf 25%, 50% und 90% Quantile Ihrer Reaktionszeiten betrachten; oder schauen Sie sich die Anzahl der Benutzer online an einem Tag an.

Es ist entworfen "in der Unix-Art": Sie nehmen ein beliebiges Protokoll und schreiben ein schnell und schmutzig einfach awk oder Perl-Skript, das es in Eingabe für das Programm (bestehend aus "Ereignissen": diskrete Wert Impulse , Dauerwertimpulse und Start/Stop-Impulse).

Es war sehr nützlich für mich bei der Analyse von Protokolldaten, insbesondere für die Diagnose bestimmter "infrastruktureller" Leistungsprobleme: Ich schaue mir Diagramme der Systemaktivität an und sehe, was nicht so aussieht, wie es aussehen soll.

3

Ich mag interlude - für, wenn diese verdammten "Kopf: undefined" Nachrichten einfach nicht weggehen!

4

Ich mag die don't Bibliothek:

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

Ist das nur ein Witz? –

+1

Ja, es war ein Witz, aber es ist nicht völlig nutzlos ... es ist wie ein Code-Code zu kommentieren. – Caleb

Verwandte Themen