2015-07-23 8 views
8

Also habe ich Pakete in Haskell mit Cabal installiert. Ich kann keine Dokumentation für die meisten davon (im Allgemeinen) sehen, und mir wurde gesagt, dass eine der besten Möglichkeiten, Haskell zu lernen, nur darin besteht, den Code im Paket zu lesen, herauszufinden, was er tut und mit dem er spielt es in GHCi oder so. Aber wie machst du das? Nach dem Installieren dieser Pakete in einer Sandbox oder etwas, kann ich nicht einmal sehen, was die Modulnamen sind, geschweige denn ihren Quellcode - wie finde ich diese Informationen?Von Haskell-Paketen lernen

+2

Ich gehe normalerweise zum hackage und lese die Dokumentation für jedes Paket dort. Wenn Sie zum Beispiel "cabal install lens" verwenden, besuchen Sie einfach http://hackage.haskell.org/package/lens, um die Dokumentation für die neueste Version zu sehen, und Sie können die Version immer auf den von Ihnen installierten Stand zurücksetzen. – bheklilr

+0

@bheklilr Hoppla, habe deinen Kommentar nicht vor dem Posten gesehen. –

Antwort

6

Ich sehe in der Regel in der Dokumentation Hackage Pakete online auf, bei https://hackage.haskell.org/package/nameOfPackage. Es hat (wenn nicht kaputt gegangen ist, was leider passiert) Links zur Dokumentation für jedes Modul, sowie Links zum Quellcode darin.

EDIT auf gebrochene docs:

Leider Hackage der doc Bausystem manchmal nicht aus irgendeinem Grunde führt, in der Regel in der Liste der Module einfach nur Text ohne Links zu sein. In diesem Fall empfiehlt es sich, die Liste der Links zu älteren Paketversionen zu überprüfen: oft funktioniert eine davon.

Es gibt auch das Problem, dass einige Bibliotheken überhaupt nicht gut dokumentiert sind. In diesem Fall erhalten Sie nur Typdeklarationen, Signaturen und Links zur Quelle. (Aber überprüfen, ob es Links zu anderen docs auf der Verpackung der Startseite.)

+0

Das Beispiel bheklilr gab in den Kommentaren eine sehr hilfreiche Dokumentation. Ich habe versucht, [gloss] (http://hackage.haskell.org/package/gloss) zu verwenden, und es gibt fast keine Beschreibung und keine Links zu den Modulen - ist das nur ein Problem des Unglücks oder bin es Ich vermisse etwas? –

+0

@DanielLittlewood Pech, aka eine kaputte Dokumentation zu bauen. [Diese etwas ältere Version funktioniert] (http://hackage.haskell.org/package/gloss-1.9.2.1). Ich werde meine Antwort ein wenig bearbeiten. –

+0

Aha, vielen Dank! –

3

jede Dokumentation

Der cabal haddock Befehl Dokumentation für Sie bauen und sie in dist/doc. Wenn Sie --enable-documentation (oder documentation: True in ~/.cabal/config) verwenden, kompiliert cabal install auch die Dokumentation für alle Ihre Pakete in ~/.cabal/share/doc. Sie können auch --hyperlink-source oder eingestellt hyperlink-source: True im haddock Abschnitt ~/.cabal/config verwenden möchten.

lesen Sie den Code in das Paket

Sie können cabal unpack ein Paket, um die Quelle zu erhalten. Für Paket foo Version x.y wird die Quelle standardmäßig in einem Verzeichnis mit dem Namen foo-x.y platziert.

mit ihm spielen in GHCi

Sobald Sie die Paketquelle haben, können Sie in das Verzeichnis navigieren und cabal repl laufen geladen, um eine GHCI-Instanz mit allen Paket-Module zu erhalten.

sehen, was die Modulnamen sind

Der Modules: Abschnitt cabal info hier von Interesse sein wird. Sobald ein Paket installiert ist, können Sie auch ghc-pkg describe verwenden, um ähnliche Funktionen zu erhalten. (Der Hauptunterschied hier ist, welche Pakete bekannt sind; cabal info wird wissen, was auf Hackage/welches Paket-Repository Sie konfiguriert haben cabal zu verwenden, auch wenn das Paket noch nicht installiert ist, während ghc-pkg über jedes Paket wissen, das Sie installiert haben , auch wenn dieses Paket nicht von Hackage stammt.)