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 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe