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)

This is what I see:

$ hugs
Hugs.Base> fac :: Integer -> Integer
ERROR - Undefined variable "fac"
Hugs.Base> fac 0 = 1
ERROR - Syntax error in input (unexpected `=')


$ ghci
Prelude> fac :: Integer -> Integer

<interactive>:1:0: Not in scope: `fac'
Prelude> fac 0 = 1
<interactive>:1:6: parse error on input `='

$ # Write the program to fac.hs
$ ghc fac.hs

fac.hs:1:0:
    The main function `main' is not defined in module `Main'
    When checking the type of the main function `main'



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.
--
     /\/`) http://oooauthors.org
    /\/_/  http://opendocumentfellowship.org
   /\/_/
   \/_/    I am not over-weight, I am under-tall.
   /
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to