Frage

wieder eine totale Neuling Frage von mir über Haskell und Leskah.

(First, ein subjektives Kompliment für Haskell Liebhaber: an jeder wieder für eine Lernsitzung von Haskell Ich mag es mehr und mehr ich hoffe, dass dies für lange weitergehen wird :-).. Neueste Freude hat Zucker Leskah gewesen für die automatische Transformation Symbole in Mathematik. Es macht Code sieht wirklich nett. Aber auch das ist nicht der Punkt ...)

Ich wollte mein Lernpaket in mehrere Dateien organisieren. Aber ich habe es nicht geschafft eine zweite Datei in dem Hinzufügen z.B. Second.hs, andere Definitionen enthält, zu meiner aktuellen Garnkörperaufbaus Einheit. Ich habe es in Leskah / Paket bearbeiten / Extra Dateien hinzugefügt. Aber dies scheint nicht die Arbeit zu tun. Mehr über mir, wie es das Gefühl, war es ein wenig akward jeweils jede neuen Datei auf diese Weise hinzufügen (thru Leskah / Paket bearbeiten / Extra Files).

Wie auch immer als Folge alles, was gebaut wird, ist nach wie vor nur der Inhalt meiner Main.hs. Ich bin sicher irgendwann fehlt?!

Eine andere Frage ist, in C ++, ich namespace stark verwenden, um meine Objektdefinitionen nach Thema / Ziel zu sortieren. Was ist das Äquivalent von Namespace in Haskell? Ein Modul? Ein Packet ?

War es hilfreich?

Lösung

In Bezug auf leksah: Sie neues Modul durch den Browser-Panel hinzufügen können. Einfach mit der rechten Maustaste und „Add-Modul“ aus dem Kontextmenü auswählen (Hinweis: Geben Sie Modulnamen, aber keine Dateinamen im Dialog). Hinzufügen von Modulen von Paketeditor ist so konzipiert, nur vorhandene Modul in die Kabalen-Datei hinzuzufügen. (Wenn Sie nicht wissen, was „Kabale“ bedeutet, dann ist es eine gute Zeit, es zu google :))

In Bezug auf Namespace. Ich denke, die nächste Äquivalent-Modul ist. Sie können nur Modul importieren Definitionen zu aktuellem Kontext hinzuzufügen. Alternativ können Sie auch in diesem Fall Modul qualifiziert, importieren Sie Definitionen aus dem Modul qualifizieren müssen. Sie können auch „alias“ Modulname beim Importieren es.

import Module1
import qualified Modile2
import Module3 as M3
import qualified Modile4 as M4

Paket entspricht kompilierte Bibliothek in C / C ++.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top