Ich habe ein Skript in haskell namens testscript
mit dem folgenden Code geschrieben:
Nachdem das Skript ausführbar gemacht wurde, kann ich es mit ./testscript
ausführen. Wenn ich jedoch versuche, das Skript mit ghci zu laden (zB mit :l testscript
), bekomme ich den Fehler
Wenn ich testscript
in testscript.hs
umbenenne und versuche, erneut mit ghci zu laden, bekomme ich den Fehler
Wenn ich die Shebang-Linie entferne, funktioniert es gut. Es ist jedoch mühsam, dem Skript eine Erweiterung .hs
hinzuzufügen, die oberste Zeile zu entfernen, dann die Erweiterung .hs
zu entfernen und die shebang-Zeile jedes Mal hinzuzufügen, wenn ich das Skript in ghci ausprobieren möchte (was jedes Mal ziemlich häufig vorkommt) Ich möchte eine Änderung vornehmen). Gibt es einen einfacheren Weg, dies zu tun?
Ich verwende ghc Version 7.0.3 unter Mac OS X 10.6.8
Sie können die Option -x
verwenden, um GHCi (oder GHC) mitzuteilen, dass alle folgenden Dateien so behandelt werden sollen, als hätten sie die angegebene Erweiterung.
Es scheint keine Möglichkeit zu geben, diese Option innerhalb von GHCi anzugeben (zur Verwendung mit :load
), aber eine Workaround, die Sie verwenden können, wenn Sie dies wünschen, besteht darin, einen Symlink mit der Erweiterung .hs
zu erstellen lade das.
Ihr zweites Problem mit der Shebang-Linie wird dadurch verursacht, dass der C-Präprozessor aus irgendeinem Grund auf Ihrer Quelldatei ausgeführt wird (meine alte GHC-Installation auf Ubuntu tut dies nicht). Sie können dies deaktivieren, indem Sie die Option -XNoCPP
verwenden.
Für Ihren Fall sollte dies von der Befehlszeile aus funktionieren:
%Vor%Tags und Links haskell ghci runhaskell