haskell leksah Hallo-Welt

8

schlechte Nachrichten heute Morgen, ich war bereit zu versuchen, Leksah (gut aussehende Anwendung übrigens) für das fortlaufende Lernen haskell zu verwenden.

Ich konnte das Beispiel "Hallo Welt" nicht kompilieren. Ich fand das leksah-Tutorial .

%Vor%

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

und

%Vor%

compilation-error: src\Main.hs:1:0: The main function main 'wird nicht vom Modul Main'

exportiert

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

WICHTIG BEARBEITEN : Jetzt wird Leksah mit einer Datei Main.hs ausgeliefert, die direkt beim ersten Start von leksah geladen wird und ein voll funktionsfähiges Hello World Mini-Projekt enthält. Es hat auch minimalistische Unit Test Counter Teil. Großartig für Anfänger : -)

    
Stephane Rolland 12.01.2011, 10:13
quelle

3 Antworten

15

Der Text in der Paranthese hinter dem Modulnamen ist eine Exportliste. Das bedeutet, dass Sie alle Funktionen in das Programm einfügen müssen, das Sie dort exportieren möchten. Aber abgesehen davon müssen Sie auch Ihre Hauptfunktion irgendwo definieren. Versuchen Sie Folgendes:

%Vor%

PS: Sie können auch die Paranthesis und alles, was drin ist, entfernen, als alles in Ihrem Modul exportiert wird.

    
fuz 12.01.2011, 10:27
quelle
6

Dein zweites Beispiel ist fast da, entferne nur () neben Main . Dies ist Ihre Exportliste für Ihr Modul, die Sie leer gemacht haben (nichts zwischen den Klammern). Aus diesem Grund wird main nicht angezeigt (weil es nicht exportiert wird).

Sie könnten auch einfach main exportieren:

%Vor%     
ScottWest 12.01.2011 10:24
quelle
6

"Ist es eine gute Übung, alles zu exportieren?" Definitiv nicht. Sie möchten nicht, dass Implementierungsdetails wie Hilfsmethoden nach außen dringen. Ein anderes Beispiel sind Wertkonstruktoren, da es keine Möglichkeit gibt, Plausibilitätsprüfungen, Standardargumente usw. für sie zu haben. Um dies zu vermeiden, verwenden Sie sie nur innerhalb des Moduls und bieten bequeme und sichere Initialisierungsfunktionen für den Außenbereich.

    
Landei 12.01.2011 13:55
quelle

Tags und Links