Frage

schlechte Nachrichten heute Morgen, ich war bereit, zu versuchen und Leksah (gut aussehende Anwendung durch die Art und Weise) zu verwenden, um das Lernen Haskell fortgesetzt wird.

Ich könnte nicht die "Hallo Welt" Beispiel kompilieren fand ich das Lesen leksah Tutorial .

module Main (
main = putStrLn "Hello World"     
) where

compilation-error: src\Main.hs:16:5: parse error on input = ' `

und

module Main (
) where
main = putStrLn "Hello World"

compilation-error: src\Main.hs:1:0: The main functionmain' wird durch das Modul nicht exportiert Main'

Was würden Sie mir raten, etwas anderes zu versuchen?

WICHTIG EDIT : Jetzt Leksah mit einer Datei ausgeliefert wird Main.hs, geladen direkt zum ersten Mal leksah starten, das ein völlig functionnal Hallo Welt Mini-Projekt enthält. Es hat auch minimalistischen Unit-Test-Gegenstück. Ideal für Anfänger : -)

War es hilfreich?

Lösung

Der Text im geklam- mert nach dem Modulnamen ist eine Export-Liste. Das bedeutet, dass Sie alle Funktionen im Programm setzen müssen Sie dort exportieren möchten. Aber abgesehen davon, müssen Sie auch Ihre Hauptfunktion irgendwo definieren. Versuchen Sie folgendes:

module Main (
  main
) where
main = putStrLn "Hello World"

PS:. Sie können auch die geklam- mert und alles, was dort entfernen, als alles, was in Ihrem Modul wird exportiert werden

Andere Tipps

Ihr zweites Beispiel ist fast da, entfernen Sie einfach das () von neben Main. Dies ist Ihre Exportliste für das Modul, das Sie leer gemacht hat (nichts in-zwischen den Klammern). Aus diesem Grund wird main nicht gesehen (weil es nicht exportiert).

Sie können auch exportieren nur Haupt:

module Main (main) where

„Ist es gute Praxis Export alles?“ Definitiv nicht. Sie wollen nicht, dass die Implementierungsdetails wie Helfer Methoden nach außen entweichen. Ein weiteres Beispiel ist Wert Bauer, weil es keine Möglichkeit gibt, Plausibilitätsprüfungen zu haben, Standardargumente usw. für sie. Um dies zu überwinden, können Sie sie verwenden nur innerhalb des Moduls, und ermöglicht eine bequeme und sichere Initialisierungsfunktionen für außen.

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