Frage zum Glasgow haskell compiler

Strg+Alt+Entf

Strg+Alt+Entf

Jungspund
zuerst hoffe ich erstmal, dass es hier überhaupt Leute gibt, die Haskell programmieren. ;)

Bisher habe ich immer mit hugs gearbeitet, möchte aber jetzt mal den ghc ausprobieren. Irgendwie wirft dieser auf schon bei einfachsten Programmen mit Compilerfehlern um sich. Zuerst einmal ein Testprogramm (test.hs):
Code:
main          = "hello world"
Hugs hat damit keinerlei Probleme und es funktioniert auch richtig. Beim Complieren mit GHC (ghc test.hs) bekomme ich folgende Fehlermeldung:
Code:
Couldn't match expected type `IO a' against inferred type `[Char]'
    In the first argument of `GHC.TopHandler.runMainIO', namely `main'
    When checking the type of the main function `main'
Ich habe in einem GHC Online Tutorial was davon gelesen, dass die Methode main :: IO () definiert werden muss, aber ich habe keine Ahnung wie und warum.
 
Du musst das ja nicht kompilieren. der GHCi hat ja auch einen interaktiven Modus. Wenn du das Programm allerdings kompilieren willst, dann musst du die Funktion main mit dem angegebenen Typ auch definieren, so wie viele andere kompilierte Sprachen wie C oder Java auch eine main-Funktion (mit vorgegebenem Typ) besitzen.

Fuer das Hello World sollte es ein
Code:
module Main
	where

import IO

main = putStrLn "hello world"
tun, kanns aber grad nicht testen, da der Rechner, auf dem ich Haskell benutze (lerne) aus ist. ;-)
Wenn du nicht weisst, was IO () ist, dann sind Monaden dein Stichwort. Zum einen gibts von Cale Introduction to IO, Monads as computation und Monads as containers.

Hoffe, das hilft ein wenig, im haskellwiki sind noch einige Tutorials verlinkt.
 
Zuletzt bearbeitet:

Ähnliche Themen

Windows clients können nicht mehr auf lange laufendes System zugreifen

dovecot und postfix Konfiguration Problem

NagiosGrapher 1.7.1 funktioniert nicht

CentOS 6.3 RADIUS - Keine Verbindung möglich

Displayport + externer Monitor zeigt bei startx nichts erst bei DVI

Zurück
Oben