Haskell 98 Spezifikation besagt, dass der Einstiegspunkt eines Programms, nämlich Funktion main
, in dem Modul namens Main, per Konvention befinden sollte. Aber auch wenn Sie module Main where
nicht an der Spitze der Datei schreiben, schreiben Sie main
in, der Quellcode kompiliert und scheint richtig zu funktionieren, wenn Sie GHC verwenden.Um zu schreiben oder nicht zu schreiben `Modul Haupt wo` in Haskell
Die Frage ist:
- Was ist der Unterschied zwischen
module Main where
Schreiben und Schreiben nicht wahr? - Welches ist bevorzugt?
Der Unterschied ist, dass ohne Modul-Header nur 'main' exportiert wird, aber mit' module Main wo' wird jede Top-Level-Definition exportiert. Scheint, dass deine Augen 'Modul Main (main) wo 'gesehen haben, wo keine Exportliste vorhanden war;) –
Es ist wichtig, die Exportliste' (main) 'zu haben, weil der Compiler dadurch mehr optimieren kann. – augustss
@DanielFischer @augustss Ich kann keine Dokumentation finden, die das unterstützt. GHC scheint diese Unterscheidung beim Erstellen einer ausführbaren Datei nicht zu treffen; es scheint die gleiche Optimierung und Verknüpfung für 'Modul Haupt (Haupt) wo 'als' Modul Haupt wo auch 'zu machen. – jdeseno