Wenn ich mich entwickle und zwei oder mehr Module gleichzeitig in GHCi verwenden möchte, habe ich Folgendes getan. Sagen wir, ich Control.Monad
und Control.Lens
verwenden möchten, und mein eigenes Modul, das ich die Programmierung mit genannt Main
:
> :m Control.Lens Control.Monad
Nun sind beide Control.Lens
und Control.Monad
in ihrem Umfang sind.
Jetzt scheint es, ich habe vergessen, Main
hinzuzufügen, so kann ich problemlos eine +
setzen, die Module hinzufügen wird. Das ist so praktisch, dass ich normalerweise immer benutze, ich zeige dir das oben nur, damit du sehen kannst, wie man mehrere Module gleichzeitig importiert.
> :m + Main
Oder was würde ich normalerweise tun, wie ich gerade beschrieben:
> :m + Main Control.Lens Control.Monad
Ich denke Main
in der Regel standardmäßig enthalten ist, aber Sie erhalten das Bild :)
In Bezug auf neu laden, benutze ich den :r
Befehl neu zu laden, und ja, es kann saugen, dass Bindungen verloren sind, aber normalerweise lege ich sie in den Code, in dem ich schreibe, manchmal vorübergehend, oder ich benutze die readline Unterstützung des Betriebssystems durch das historische Backscroll, um vorherige Definitionen zu finden ons.
Happy Haskelling!
Mit "\ * - form" meinen Sie das Modul, das der Eingabeaufforderung vorangestellt ist (dh "A" ist die "\ * - Form" in "* A>"), dann können Sie ein solches Modul an beliebiger Stelle hinzufügen nachdem es mit ': m + * A' geladen wurde; Der Teil "Zuletzt geladener Modul" bezieht sich auf den einfachen Vorteil, dass GHCi automatisch das neueste Modul dem Kontext hinzufügt, nachdem Sie ein ': load' ausgeführt haben. Und tatsächlich scheint es, dass das erste Modul zum Laden übergeben wurde, das automatisch zum Kontext hinzugefügt wird, nicht das zuletzt geladene. Ich denke, das ist ein Fehler in der Dokumentation. Unabhängig davon ist es für Ihr Problem nicht relevant. – user2407038