[Haskell-cafe] First steps in Haskell

Chris Kuklewicz chris at mightyreason.com
Sun Dec 18 11:37:26 EST 2005


Daniel Carrera wrote:
> Hello all,
> 
> I'm trying to write the simplest possible Haskell program, and I'm not
> getting anywhere.
> 
> I have installed Hugs, GHC and GHCI. I want to run the following program:
> 
> fac :: Integer -> Integer
> fac 0 = 1
> fac n | n > 0 = n * fac (n-1)
> 

$ ghci

Prelude> let { fac :: Integer -> Integer; fac 0 = 1; fac n | n > 0 = n * fac (n-1) }
Prelude> fac 12
479001600



> 
> This is a real problem for Haskell. I expect that a lot of people try
> Haskell and give up because they can't even write the simplest function.
> It's hard not to be put off by this. I love the theory behind Haskell,
> but the practice of it seems to be a real problem.
> 
> I hope someone will show me how to make this program work. Even better,
> I hope someone will fix the compilers and interpreters if they need
> fixing, or fix the documentation if that's what needs fixing.
> 
> Best,
> Daniel.

Almost everything is explained under

http://www.haskell.org/ghc/docs/6.4.1/html/users_guide/ghci.html

The main things is: The ghci prompt accepts either command, starting with a color such as :load
"filename" or haskell IO code, since it is in a do-block. Thus let is required.

The 2-D Layout syntax does not work at the ghci prompt, thus the braces-and-semicolon style I used.

More typically you would write your code in a file, as shown in:
http://www.haskell.org/ghc/docs/6.4.1/html/users_guide/ch03s02.html


More information about the Haskell-Cafe mailing list