Cookbook/Compilers and interpreters: Difference between revisions

From HaskellWiki
Line 9: Line 9:
|  compiling a file, without linking
|  compiling a file, without linking
|  -c
|  -c
|<haskell>ghc -c Foo.hs     --> Foo.hi, Foo.o</haskell>
|<haskell>ghc -c Foo.hs                   --> Foo.hi, Foo.o</haskell>
|-
|-
|  linking files into an executable
|  linking files into an executable
|  -o
|  -o
|<haskell>ghc -o test Foo.o Bar.o Baz.p     --> test</haskell>
|<haskell>ghc -o test Foo.o Bar.o Baz.p   --> test</haskell>
|}
|}



Revision as of 08:41, 31 August 2009

GHC

Problem Solution Examples
compiling a file, without linking -c
ghc -c Foo.hs                    --> Foo.hi, Foo.o
linking files into an executable -o
ghc -o test Foo.o Bar.o Baz.p    --> test

GHCi

Problem Solution Examples
checking a definition :i
Prelude> :i Monad
class Monad m where
  (>>=) :: m a -> (a -> m b) -> m b
  (>>) :: m a -> m b -> m b
  return :: a -> m a
  fail :: String -> m a
        -- Defined in GHC.Base
instance Monad Maybe -- Defined in Data.Maybe
instance Monad IO -- Defined in GHC.IOBase
instance Monad ((->) r) -- Defined in Control.Monad.Instances
instance Monad [] -- Defined in GHC.Base
checking a type :t
Prelude> :t "Hello"
"Hello" :: [Char]

Prelude> :t length
length :: [a] -> Int

Hugs

TODO