Cookbook/Compilers and interpreters
From HaskellWiki
(Difference between revisions)
(→GHC) |
(→GHCi) |
||
| Line 60: | Line 60: | ||
Prelude> :t length | Prelude> :t length | ||
length :: [a] -> Int | length :: [a] -> Int | ||
| + | </haskell> | ||
| + | |- | ||
| + | | loading a file | ||
| + | | :l | ||
| + | |<haskell> | ||
| + | Prelude> :l Foo.hs | ||
| + | [1 of 1] Compiling Foo ( Foo.hs, interpreted ) | ||
| + | Ok, modules loaded: Foo. | ||
</haskell> | </haskell> | ||
|} | |} | ||
Revision as of 08:50, 31 August 2009
1 GHC
| Problem | Solution | Examples |
|---|---|---|
| compiling and linking an executable | --make | ghc -- make Main.hs --> Main |
| compiling a file, without linking | -c | ghc -c Foo.hs --> Foo.hi, Foo.o |
| generating Assembler code | -S | ghc -S Foo.hs --> Foo.hi, Foo.s |
| generating C code | -S | ghc -C Foo.hs --> Foo.hc, Foo.hi |
| linking files into an executable | -o | ghc -o test Foo.o Bar.o Baz.p --> test |
2 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 |
| loading a file | :l | Prelude> :l Foo.hs [1 of 1] Compiling Foo ( Foo.hs, interpreted ) Ok, modules loaded: Foo. |
3 Hugs
TODO
