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