Cookbook/Compilers and interpreters
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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 | -C | ghc -C Foo.hs --> Foo.hc, Foo.hi
|
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
|
loading a file | :l | Prelude> :l Foo.hs
[1 of 1] Compiling Foo ( Foo.hs, interpreted )
Ok, modules loaded: Foo.
|
Hugs
TODO