
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