getting started with the glasgow haskell compiler

Keith Wansbrough Keith.Wansbrough@cl.cam.ac.uk
Thu, 09 Aug 2001 10:37:04 +0100


Mikael Johansson writes:

> module Main (main) where
> main =3D putStrLn "Hello World"
> end
> =

> with the command
> =

> ghc Hello.lhs
> =

> I get the message on standard output:
> =

> No definitions in file <perhaps you forgot the '>'s?>


=2Elhs means "literate Haskell file".  Try


> module Main (main) where
> main =3D putStrLn "Hello World"

(the "end" isn't legal Haskell).  The ">" at the beginning of the line ar=
e called "Bird tracks" (after Richard Bird), and mark the lines of a lite=
rate Haskell program that are actually code.  Lines without them are just=
 comments.

Or try

\begin{code}
module Main (main) where
main =3D putStrLn "Hello World"
\end{code}

which is another way of marking code.

The final way, probably the easiest, is simply to put your program in a f=
ile called Hello.hs  rather than Hello.lhs.  The .hs extension means "ord=
inary Haskell code".

HTH.

--KW 8-)
-- =

Keith Wansbrough <kw217@cl.cam.ac.uk>
http://www.cl.cam.ac.uk/users/kw217/
Cambridge University Computer Laboratory.