Ich möchte ein Modul erstellen und es in die Haskell-Bibliothek laden. Ich kann mit Ubuntu 11 oder Windows 7 mit den Tools der Haskell-Plattform arbeiten. Das ist mein Modul:
%Vor%Ich habe auch ein Problem mit "show" in der ghci, weil ich eine Ausnahme von Stack-Überlauf bekomme.
Ihre Paste ist mit dem Code unordentlich; vielleicht sollte es so aussehen: Ссылка (beachten Sie den Hinweis von hlint
unten.) Die folgenden Schritte sind für eine einfache Methode der Entwicklung , aber denke ich werde die meisten relevanten Faktoren offen legen:
Benenne das Modul in das sinnvollere Poker.Elements
um und speichere es als Elements.hs
Erstellen Sie ein Verzeichnis namens poker
mit einem Unterverzeichnis namens Poker
Verschiebe Elements.hs
in poker/Poker
. Jetzt ist der hierarchische Name Poker.Elements
sinnvoll. Ihre Verzeichnisstruktur sieht so aus:
poker
ist jetzt ordnungsgemäß organisiert. Geben Sie ghci Poker/Elements.hs
von dort ein und ghci
wird wissen, wie man mit anderen Poker.x.y.z
-Modulen in einer komplizierteren Struktur, wie etwa dieser, umgeht:
Aber unsere Idee war, die poker
-Bibliothek mit dem cabal
-Tool zu erstellen und zu installieren. Nichts einfacher.
cd
in poker
, wenn Sie nicht dort sind.
Führen Sie cabal init
aus. Die Antworten werden alle offensichtlich sein. Sie erstellen eine Bibliothek, die sich auf Spiele bezieht.
Bearbeiten Sie Ihre neue poker.cabal
-Datei - cabal init
kann nicht sagen, welche Pakete Sie verwenden.
Tatsächlich verwenden Sie nur Prelude
und Data.Char
, die sich in base
befinden, also erweitern Sie die Zeile Build-depends
so, dass sie so aussieht:
Das Ergebnis sieht folgendermaßen aus: Ссылка (Wenn Sie weitere Abhängigkeiten verpassen, wird dies mit dem nächsten Befehl angezeigt.)
Ihr Verzeichnis hat jetzt diese Struktur:
%Vor% Sie haben also jetzt ein cabalisiertes, baubares, in der Tat hackagefähiges Paket. Geben Sie cabal install
und dann cabal clean
ein. Das Tool cabal
hat die Konfiguration, Kompilierung, Installation und Registrierung des Pakets verwaltet. (Standardmäßig wird die kompilierte Bibliothek im versteckten Verzeichnis $HOME/.cabal/lib/poker-0.1
oder der Entsprechung für Ihr System abgelegt.)
Öffnen Sie ghci
von überall auf Ihrem System; Gib 'den Code ein%. Genießen. Es ist nicht anders, wenn Sie import Poker.Elements
direkt aufrufen - wenn Sie beispielsweise eine ausführbare Datei mit ghc
erstellen, weiß ghc jetzt, wie Sie ghc --make -O2 PokerCalculator.hs -o pokercalculator
ohne weitere Anweisungen finden können.
Teste deine Definitionen. Reflektieren. Bund. Überdenken Sie. Testen Sie mehr. Schauen Sie in Poker.Elements
.
Wenn Sie Ihr Modul überarbeitet haben, erstellen Sie es neu und installieren Sie es erneut mit quickcheck
. Dies überschreibt die alte Installation von cabal install
, wie Sie es immer noch aufrufen; aber in diesem, einfachsten, Fall werden keine anderen Pakete dagegen gebaut, so dass das Ergebnis wünschenswert ist. (Falls deine andere experimentelle Bibliothek, poker-0.1
- die im nächsten Verzeichnis ist - imports texas-holdem-0.1
, wie es wahrscheinlich ist, dann repliziere sie auch, um deine fortgeschritteneren Ideen über die Poker.Elements
des Pokers zu verwenden.)
Wenn Sie neue Module hinzufügen oder Module aus neuen Paketen importieren, geben Sie diese in den entsprechenden Zeilen von Elements
an. Wenn du es vergisst, erinnert poker.cabal
dich höflich daran, dies zu tun, wenn du versuchst, es neu aufzubauen ...
Lade dein cabal install
-Paket auf github oder patch-tag oder darcsden hoch. Wenn du es perfektioniert hast, lade es auf Hackage hoch. Beachten Sie, dass es sogar auf Github oder Patch-Tags zum "hackaged" Universum gehört. Wenn Sie Module von Hacker-Paketen auf Hackage importieren, erhalten die Leute poker
oder git clone
Ihr Repository, darcs get
die richtigen Pakete für sie von hackage.haskell.org.
Tags und Links haskell